php做网站安全性,怎么做钓qq密码网站,去哪找wordpress主题,wordpress模板剥离systemverilog的设计特性 一.概述二.面向硬件的过程语句块1.说明2.always_comb2.always_latch3.always_ff 三.关系运算符1.说明2.例子 四.inside判定符1.说明2.例子 五.条件分支语句#xff08;1#xff09;说明#xff08;2#xff09;例子#xff08;case和unique case的… systemverilog的设计特性 一.概述二.面向硬件的过程语句块1.说明2.always_comb2.always_latch3.always_ff 三.关系运算符1.说明2.例子 四.inside判定符1.说明2.例子 五.条件分支语句1说明2例子case和unique case的区别 六.接口 一.概述
systemverilog为了便于设计添加了一些可综合的设计特性。其中主要包含以下部分 添加了always_comb、always_latch、always_ff等过程块; 添加了关系运算符?和!?,表示进行关系比对时不考虑带****的位 添加了inside判定符用于判定一个变量的值是否在一系列值中 完善了case条件分支语句添加了unique case和priority case 添加了接口interface从而将通信和协议检查进一步封装 添加了类似C语言的数据类型例如int、byte 添加了用户自定义类型、枚举类型、结构体类型 添加了类型转换常用的有$cast(T,S)方法或’(); 添加了包package从而使得多个设计之间可以共享公共类型和方法 添加了方便的赋值操作符例如,,; 添加了priority和unique case语句
二.面向硬件的过程语句块
1.说明
always语句块被细分为了 always_comb:组合逻辑语句块 always_latch:锁存器逻辑语句块 always_ff:时序逻辑语句块 作用EDA软件可以更准确地检查设计的实现意图
2.always_comb
always_comb可以自动嵌入敏感事件列表 always_comb可以禁止共享变量即赋值左侧的变量无法被另外一个过程块所赋值 软件会检查该过程块如果其所表示的不是组合逻辑那么就会发出警告 always_comb会在0时刻自动触发一次无论在0时刻是否有敏感信号列表中的信号发生变化 铭感事件列表的特点 *不要求可综合的建模要求但always_comb则会限制其他过程块对同一变量进行赋值 *敏感列表可能不完全例如如果一个过程块调用一个函数那么*则只会将该函数的形式参数自动声明到敏感事件列表而不会将该函数展开 always_comb则将被调用函数中可能参与运算的其他信号也声明到敏感事件列表中
2.always_latch
always_latch表示锁存逻辑会自动插入敏感事件列表 EDA工具会自动检查always_latch是否被真正实现了锁存逻辑
3.always_ff
敏感事件列表必须要指明posedge或者negedge,从而使得EDA工具实现同步或者异步对的复位逻辑 EDA工具也会验明always_ff是否被实现了时序逻辑
三.关系运算符
1.说明
添加了关系运算符?和!?,表示进行关系比对时不考虑带****的位
2.例子
1代码
module oper_char;reg [3:0] a 4b01zx;initial beginif(a ? 4b01??)$display( yes );else$display( no);end
endmodule2结果 用verilog编译报错 用systemverilog编译执行
四.inside判定符
1.说明
添加了inside判定符用于判定一个变量的值是否在一系列值中
2.例子
module oper_char;reg [3:0] a 4d3;reg [3:0] b 4d5;initial beginif(a inside {4d0,4d1,4d2,4d3,4d4})$display( a:yes );else$display( a:no);if(b inside {4d0,4d1,4d2,4d3,4d4})$display( b:yes );else$display( b:no);end
endmodule结果
五.条件分支语句
1说明
完善了case条件分支语句添加了unique case和priority case case条件分支各条件分支可以重叠在判定时从上至下进行匹配匹配后跳出 unique case要求各条件分支必须互斥且必须满足一个分支 priority case各条件分支可以重叠在判定时从上至下进行匹配匹配后跳出强调优先级 个人看法目前没有看出case和priority case的明显区别
2例子case和unique case的区别
case的例子
module oper_char;reg [3:0] a 4b0011;initial begincase(a)4b0001: $display(case1 yes);4b0011: $display(case2 yes);4b0011: $display(case3 yes);default: $display(default yes);endcaseend
endmodule结果 分析 条件分支2和条件分支3重叠优先匹配前面的 unique case的例子
module oper_char;reg [3:0] a 4b0011;initial beginunique case(a)4b0001: $display(case1 yes);4b0011: $display(case2 yes);4b0011: $display(case3 yes);default: $display(default yes);endcaseend
endmodule结果 分析 条件分支重叠报出警告
六.接口