当前位置: 首页 > wzjs >正文

网站建设栏目规划龙岩人才网

网站建设栏目规划,龙岩人才网,互联网公司包括,东莞软件网站推广1、systemverilog的队列特性 1.1队列的基础操作 方法语法时间复杂度示例结果头部插入q.push_front(item)O(1)q.push_front(5)[5, ...]尾部插入q.push_back(item)O(1)q.push_back(8)[..., 8]头部删除q.pop_front()O(1)x q.pop_front()[...]尾部删除q.pop_back()O(1)x q.pop_…

1、systemverilog的队列特性

1.1队列的基础操作

方法语法时间复杂度示例结果
头部插入q.push_front(item)O(1)q.push_front(5)[5, ...]
尾部插入q.push_back(item)O(1)q.push_back(8)[..., 8]
头部删除q.pop_front()O(1)x = q.pop_front()[...]
尾部删除q.pop_back()O(1)x = q.pop_back()[...]
任意插入q.insert(index, item)O(n)q.insert(2, 10)在索引2插入
任意删除q.delete(index)O(n)q.delete(1)删除索引1

1.2队列的特殊操作

// 队列拼接
int a[$] = {1,2};
int b[$] = {3,4};
a = {a, 5};      // [1,2,5]
b = {a, b};      // [1,2,5,3,4]

// 范围操作
int q[$] = {0,1,2,3,4};
q = q[1:3];      // [1,2,3] 保留索引1到3
q = q[2:$];      // [3] 保留索引2到末尾

// 排序操作
q.sort();         // 升序排序
q.rsort();        // 降序排序
q.shuffle();      // 随机排序

1.3队列的应用场景

1. 数据缓冲器实现

class fifo_buffer;
    int buffer[$];
    int max_size = 8;

    function void push(input int data);
        if(buffer.size() < max_size) begin
            buffer.push_back(data);
        end
    endfunction

    function int pop();
        if(buffer.size() > 0) begin
            return buffer.pop_front();
        end
        return -1; // 错误码
    endfunction
endclass
2. 事务处理管道

// 多阶段事务处理
transaction_t pipe_queue[$];

always @(posedge clk) begin
    // 阶段1:解码
    if(!pipe_queue.size()) begin
        pipe_queue.push_back(new_trans);
    end

    // 阶段2:执行
    if(pipe_queue.size() > 0) begin
        process(pipe_queue[0]);
        pipe_queue = pipe_queue[1:$]; // 移除已处理事务
    end
end
 

1.4专项练习

执行以下操作后,队列a的值是:

int a[$] = {1,2};

initial begin

a.insert(1,3);//(1)

a.push_front(8);//(2)

a = {a,6};//(3)

end

解析:

由(1)得在索引1 处插入3变成{1,3,2}

由(2)得在队列前面插入8变成{8,1,3,2}

由(3)得拼接队列得{8,1,3,2,6}

2、四值逻辑到二值逻辑转换

四值逻辑 → 二值逻辑转换x/z 转为 0

例如:bit [3:0] a;
reg [3:0] b=4'b10x0;

assign a = b;

最后a会变成4'b1000。

1. 二值逻辑 vs 四值逻辑
类型值范围典型用途关键字/示例
二值逻辑01高性能仿真、测试平台bitbyteint
四值逻辑01xzRTL 设计、精确建模reglogicwire

关键细节

  • logic 是四值类型,可替代 reg 和 wire,但不能用于多驱动(如双向总线)。
  • bit 是二值类型,默认无符号,仿真速度更快。
2. 有符号 vs 无符号
类型默认符号性显式声明示例
有符号integerintlogic signedlogic signed [3:0] a;
无符号regbitlogic unsignedbit [3:0] b = 4'b1111;

关键细节

  • 默认符号性
    • integerintshortintlongint 默认有符号
    • reglogicbitbyte 默认无符号
  • 混合运算规则
    • 若操作数中有一个无符号,则结果视为无符号(可能导致意外负值转换)。

adding

System Verilog引进了一些新的数据类型,如下:

    双状态数据类型

    队列、动态和关联数组

    类和结构

    联合和合并结构

    字符串

    枚举类型

class niuniu;
  logic[31:0] a, b, c[8];
  function new();
    a = 3;
    foreach (c[i])
      c[i] = 1;
  endfunction
endclass

A

代码存在问题,function非void却没有返回值

B

c代表一个8bit的数组

C

这个类的定义是正确的

D

都不对

解析:

1. function new()

• 在 SystemVerilog 中,类的构造函数是 new 方法。new 方法是类的构造器,用来初始化类的成员变量。

• new 方法如果没有明确指定返回值类型,则默认是 void,表示没有返回值。因此,代码中 function new() 定义没有返回值是完全合法的。

2. logic[31:0] a, b, c[8];

• 这里,a 和 b 都是 32 位宽的 logic 类型变量。

• c[8] 声明了一个长度为 8 的数组,数组中的每个元素是 logic[31:0],即每个元素也是 32 位宽的 logic 类型。

这意味着 c 是一个 8 个元素的数组,每个元素都是 32 位宽的逻辑变量。注意,这里的 c 不是一个简单的 8 位数组,而是一个包含 8 个 32 位元素的数组。

3. foreach (c[i]) c[i] = 1;

• foreach 是 SystemVerilog 中的一个语法,用来遍历数组中的每个元素。

• 这里,foreach 循环遍历 c 数组中的每个元素,并将每个元素的值设置为 1。

相关知识点总结:

1. new 构造函数:在 SystemVerilog 中,new 是类的构造函数。如果不明确指定返回类型,则默认是 void,表示没有返回值。new 方法用于初始化类的成员变量。

2. 数组声明:在 SystemVerilog 中,数组可以指定每个元素的位宽。例如,logic[31:0] c[8] 表示 c 是一个包含 8 个元素的数组,每个元素是 32 位宽的 logic 类型。

3. foreach 语句:foreach 是一种用于遍历数组的结构。它会遍历数组中的所有元素,并执行相应的操作。

4. 类型声明与数组大小:要特别注意,logic[31:0] c[8] 定义的是一个包含 8 个 32 位元素的数组,而不是 8 位数组。

http://www.dtcms.com/wzjs/537143.html

相关文章:

  • phpcms 网站广州市人口
  • 网站建设策划解决方案中国企业网信息网
  • 网站建设 有聊天工具的吗南京网站制作公司南京微尚
  • 三明鑫龙建设工程网站公司做网站哪里好
  • 旅游网络网站建设方案柳州网站建设服务
  • 淮安设计网站wordpress 黑客主题
  • 论文答辩ppt范例模板百度seo关键词排名 s
  • 江西建设信息港网站百度开户联系方式
  • 外贸网站免费模板用工备案的系统的网站
  • 专业做足球体彩网站网易企业邮箱怎么发送文件
  • 企业手机网站建设机构wordpress 主题查询
  • wordpress建站教程网建设免费网站制作
  • ppt哪个网站做的好网页制作一套教程
  • 北京网站设计网站设计公司价格中国郑州建设信息网站
  • 建立网站数据库实验报告承德市外贸网站建设
  • 建设网站论文vi设计公司 深圳
  • 商务网站开发与建设论文正确的网址格式例子
  • 做高仿表网站容易被k吗推广平台有哪些技巧和方法
  • 马鞍山网站建设制作公司app开发合同模板最新版
  • 移动网站开发视频怎样嵌入专门做三国战纪的网站叫什么意思
  • 济南专业网站建设咨询wordpress雷锋网
  • 网站域名实名认证官网企业网站建设公司那家好
  • 常州有哪些做阿里巴巴网站的个人怎么申请注册商标
  • 做旅游的网站 优帮云百度提交网址入口
  • 改变网站的域名专门做折扣的网站
  • 自定义网站建设开发一个网页具体流程
  • 网站排名优化教程网站域名实名认证通知
  • 网站欣赏网站欣赏广州网站建设V芯ee8888e
  • 网站标题关键词成都培训学校网站建设
  • 网站怎么做关键词内链网页设计与制作实训总结2000字