几乎通用的数据类型——logic
是4态数据类型的变量,只允许使用一个驱动源,或者来自于一个或者多个过程快的过程赋值。
位宽可变,logic类型可以替代所有其他类型,包括reg类型。
wire数据类型仍旧使用的原因:多驱动源总线,如多路总线交换器;双向总线(两个驱动源)。
bit是两态数据类型。
system verilog对端口的定义没有限制。

typedefine——用户定义的类型,允许生成用户定义的或者容易改变的类型定义,好的命名规则用“_t”做后缀。

always@*
begin
next=’x;
…….
//*表示对语句进行“填满”的操作。’x等价于’bx,’z等价于’bz,’1所有位赋为1,’0所有位赋为0。

特定逻辑过程
always_comb 组合逻辑过程 ,与always@*差别不大
always_latch 生成锁存器
always_ff 时序逻辑

void函数——与task不同
1、不能等待
2、不能包括延迟
3、不能包括事件触发
4、被always_comb搜寻到的信号自动加入敏感列表

module comb(output bit_t [2:1]y,input bit_t a,b,c);
always_comb//等价于always@(a,b,c).如果是always@*,则等价于always@(a).orf1(a);
function void orf1;input a;y[1]=a|b|c;
endfunction
always_comb//等价于always@(a)ort1(a);
task ort1;input a;y[2]=a|b|c;
endtask
endmodule

priority和unique——设计意图
枚举类型 enum{ } 变量名

隐含的端口连接(sv新增的)
.name 例如:multiplier multiplier(.mult, .mop1, .data); 名称要求一致
.* 例如:multiplier multiplier(.*);//名称要求一致
说明:
1、在同一个实例引用中禁止混用.*和.name端口;
2、允许在同一个实例引用中使用.name和.name(signal)连接;
3、也允许在同一个实例引用中使用.*和.name(signal)的连接;
4、必须使用.name(signal)的情况:
位宽不匹配 inst u1(…, .data(data[7:0]),…);
名称不匹配 inst u2(…,.data(pdata), …);
没有连接的端口 inst u3(…,.berr(),. …);

packed和unpacked的数组
未打包的位数组 bit a [3:0];
打包的位数组 bit [3:0] p; //打包的索引可以分块访问,可以对整个存储器进行操作。而未打包的只能按位访问。

数据的组织
struct 与c语法相似,这里分为struct packed

接口的使用

接口的详细使用见ppt80页。https://wenku.baidu.com/view/bb832e8f6529647d2728528b.html

system verilog语法相关推荐

  1. 【芯片验证学习纪实】System Verilog语法(1)

    [芯片验证学习纪实]System Verilog语法(1) 继学习了FPGA设计之后,学习IC验证也有一段时间了,学习过程中参考了很多互联网上的优秀资源,在此感谢各位前辈们的无私分享!现在,利用闲暇之 ...

  2. verilog/system verilog语法

    1,Verilog有变量类型和线网类型.变量类型比如reg,integer和time.线网类型比如wire,wor,wand等.system verilog使用了Verilog的变量类型:reg,in ...

  3. 再说System Verilog 与 Verilog 的关系

    System Verilog 与 Verilog 的关系 标准 当前的System Verilog标准是由IEEE(国际电子电气工程师协会)和Accellera(基于工业的标准协会)两个国际组织制定的 ...

  4. (45)System Verilog 类中变量随机激励约束语法

    (45)System Verilog 类中变量随机激励约束语法 1.1 目录 1)目录 2)FPGA简介 3)System Verilog简介 4)System Verilog 类中变量随机激励约束语 ...

  5. [转]verilog语法学习心得

    verilog语法学习心得 1.数字电路基础知识: 布尔代数.门级电路的内部晶体管结构.组合逻辑电路分析与设计.触发器.时序逻辑电路分析与设计 2.数字系统的构成: 传感器  AD  数字处理器  D ...

  6. System Verilog Assertion for debug

    System Verilog Assertion是非常好的验证方法,通过SVA可以显式描述需要验证的电路逻辑,并且仿真工具可以在仿真的过程中自动输出波形出错信息,从而替代传统的看波形调试方法,提高前端 ...

  7. sv_labs学习笔记——sv_lab4(System Verilog)

    sv_labs学习笔记--sv_lab4(System Verilog) lab4 OOP encapsulation 实验概述 任务代码解析 Packat实现与理解 语法点解析 randomize( ...

  8. sv_labs学习笔记——sv_lab3(System Verilog)

    这里我们在前两个lab的基础上继续完善,搭建一个数据接受的功能.在lab2 中我们实现了相关发送信息的打印,选择发送接受的端口,完善发送时序,在这一小节中将实现对端口发送数据的回收,然后进行比较发送的 ...

  9. sv_labs学习笔记——sv_lab2(System Verilog)

    该博文在lab1的基础上,根据说明以及solution里的文件,实现了接口发送时序.简单对代码进行分析.分析的内容在文章的注释区中.对于不是很清楚的语法进行解释.最后在原文件的基础上给出增加了相关打印 ...

  10. sv_labs学习笔记——sv_lab1(System Verilog)

    sv_labs学习笔记--sv_lab1(System Verilog) 概述 lab1 功能简述 代码分析 仿真精度 理解repeat(15) @(rtr_io.cb); 理解$timeformat ...

最新文章

  1. UI设计师面试如何操作才能获得高薪
  2. [zt]如何用Javascript获得TextArea中的光标位置
  3. 成功有感之给年轻人的10个忠告
  4. C++中const用法总结
  5. 802.11 区分广播 多播 单播帧
  6. session共享怎么做的(分布式如何实现session共享)?
  7. ant man 什么意思_浅谈为什么很多蓝牙模块厂家选择nRF52832?
  8. java 声明静态类,为什么你不能在Java中将类声明为静态?
  9. 微软发布Windows 11测试版开始菜单和任务栏等区域无响应的解决办法
  10. JavaScript学习(三十六)—移动的小球
  11. JS中的运算符和数组
  12. azure web应用部署_Java Web应用程序中的Azure AD SSO,ADFS SSO配置
  13. python代码编辑器PyCharm快捷键补充
  14. 二叉搜索树的后序遍历序列(C++)
  15. 数学逻辑习题集(2)
  16. 思维导图模板怎么下载
  17. 读书笔记010:《伤寒论》- 足少阴肾经
  18. 关于VB.net禁用右键菜单的实现
  19. Excel表格转换为布尔表
  20. hook之useRoducer

热门文章

  1. simulink仿真实例_推荐几本关于制冷仿真的书籍(制冷仿真必备)
  2. android记账系统预算功能,怎么挑选合适的 Android 记账应用?你可以从记账需求入手...
  3. 今日download工程的奇怪问题error C2039: 'readStdErr' : is not a member of 'Programer',
  4. Vue + JsBarcode 批量打印标签
  5. InTouch蜂鸣器报警提示方法
  6. 间隙锁(Gap Lock)
  7. 机械公差与配合 常见问题
  8. 代码审查的必要性和最佳实践
  9. CREO图文教程:利用CREO软件实现模型零件设计实例大全(曲柱、矿泉水瓶、三弯管、风扇叶、一腔多模、螺旋弹簧、数字刻度、足球设计、齿轮参数化设计、油缸)等几十个案例之详细攻略
  10. Python 思维锻炼