傻大方


首页 > 知识库 > >

SystemVerilog|SystemVerilog硬件设计及建模第6章ppt课件


按关键词阅读: 硬件 SystemVerilo 课件 设计 PPT 建模

1、Verilog中的always过程块是通用的 , 不能反映准确的设计意图 , SystemVerilog增加了硬件专用类型的过程块 , 能够准确反映设计意图 , 使模拟、综合、形式检查、lint检查等EDA工具精确地完成任务 , 并使不同的EDA工具保持一致性;SystemVerilog对任务和函数进行了许多改进 , 增强了任务和函数对大规模、复杂设计建模能力,组合逻辑过程块 锁存逻辑过程块 时序逻辑过程块 任务与函数的改进,第6章 SystemVerilog过程块、任务和函数,6.1 Verilog通用目的always过程块,always过程块是一个能重复执行的语句块的无限循环 , 循环包括了时间控制或事件控制以使模拟 。

2、时间向前推进 。
always过程块用于对象建模 , 可以用作组合逻辑、锁存逻辑和时序逻辑的RTL建模 , 也可用于对算法建模及在测试平台中时钟的建模 。
always过程块通常包括敏感表 , 只有敏感表中的信号发生变化时 , 过程块才能被触发执行 。
由于always过程块是通用的 , 工具必须从过程块内容推断设计意图 , 加大软件工具的负担 。
Verilog RTL综合的IEEE1364.1标准中给出了always过程块的组合逻辑、锁存逻辑和时序逻辑的综合指导方针 , 但并不要求强制执行 , 且always的模拟与综合不依照同样的语法规则 , 使得模拟与综合结果不一致,6.2 SystemVerilog特有的过程块,SystemV 。

3、erilog增加了3个能够明确表示设计意图的过程块:always_comb、always_latch和always_ff;如果特有的过程块的内容与其相应逻辑不匹配 , 软件工具会发出警告信息;特有过程块与always一样是无限循环的 , 在特有块中加入了限制建模类型的句法和语义的规则 , 从而与IEEE1364.1综合标准一致 。
通过使用always_comb、always_latch和always_ff过程块 , 不仅是软件工具 , 其它查看或维护此模型的设计人员也能够很清楚地了解设计思路 , 提高了代码的文档性,注意:并不是使用了always_comb、always_latch、always_ff过程块就一定会综 。

4、合出对应的组合、锁存、触发电路,6.2.1 组合逻辑过程块,always_comb过程块表示建立组合逻辑模型 , always_comb能推断出其敏感表 , 推断的敏感表包括所有在过程块外赋值并被过程块读取的信号及过程块中调用函数的有所信号(但局部的临时变量除外) 。
禁止出现共享变量:always_comb过程要求被赋值的变量不能再次在其它过程块被赋值 , 以符合综合要求 。
always_comb过程块在所有的initial和always过程块启动后 , 会在模拟的0时刻自动触发 , 该特殊主义确保了组合逻辑在0时刻产生与输入相对应的输出结果尤其是在使用两态变量建模时 , 0时刻自动求值显得尤为重要,6.2.1 组合 。

【SystemVerilog|SystemVerilog硬件设计及建模第6章ppt课件】5、逻辑过程块,package chip_types;
typedef enum FETCH, WRITE, ADD, SUB, MULT, DIV, SHIFT, NOP instr_t;
endpackage import chip_types : *;
module controller(output logic read, write, input instr_t instruction, input wire clk, resetN);
enum WAIT, LOAD, STORE state, nextState;
always (posedge clk, negedge resetN 。

6、) if( ! resetN) state = WAIT;
else state = nextState;
always (state) begin case (state) WAIT : nextState = LOAD;
LOAD : nextState = STORE,仅当state变化时才触发,6.2.1 组合逻辑过程块,STORE : nextState = WAIT;
endcase end always (state, instruction) begin read = 0;
write = 0;
if(state = LOAD end endmodule,state和nextS 。

7、tate为枚举类型 , 枚举标签WAIT代表的值为0 , 无论resetN有效否 , state的值不会改变 , why,6.2.1 组合逻辑过程块,package chip_types;
typedef enum FETCH, WRITE, ADD, SUB, MULT, DIV, SHIFT, NOP instr_t;
endpackage import chip_types : *;
module controller(output logic read, write, input instr_t instruction, input wire clk, resetN);
enum WAIT, LOAD 。

8、, STORE state, nextState;
always (posedge clk, negedge resetN) if( ! resetN) state = WAIT;
else state = nextState;
always_comb begin case (state) WAIT : nextState = LOAD;
LOAD : nextState = STORE,推断出(state) , 即使不被触发 , 在0时刻也会自动执行,6.2.1 组合逻辑过程块,always_comb and always * always *没有组合逻辑语义 , 只能是在敏感表有变化时才执行 *仅仅是 。

9、一种推断事件控制列表信号的语句 , 可在过程块内部使用 *推断的敏感表可能不完整:不能推断出函数调用引用的模块级信号,always * begin a1 = data 1;
b1 = decode();
end,always_comb begin a2 = data 1;
b2 = decode();
end,function decode;
begin case (sel) 2b01 : decode = d | e;
2b11 : decode = d endcase end endfunction,只推断出 (data,推断出 (data, sel, d, e, c,6.2.2 锁存逻辑过程 。


来源:(未知)

【学习资料】网址:/a/2021/0207/0021331047.html

标题:SystemVerilog|SystemVerilog硬件设计及建模第6章ppt课件


上一篇:Web|Web服务器配置ppt课件

下一篇:放大器|单级放大器设计与实验