芯学长 | 掌握芯资讯,引领芯未来

您当前所在位置:首页 > 资源下载 > 技术文库

verilog菜鸟教程|Verilog语言基础知识:行为语句

发布时间:2023-08-15来源:芯学长

下载资料
文件概述:

verilog语法对于学习IC设计来说比较重要,它也是目前应用最为广泛的硬件描述语言,可以用来进行各种层次的逻辑设计,也可以进行数字系统的逻辑综合,仿真验证和时序分析等。芯学长带你了解verilog语法。

点击上方蓝色按钮可以免费下载verilog语法全部资料

(1)过程语句

always语句为过程语句,其表达式为

always@(<触发条件列表>)

触发条件列表又称为敏感信号表达式,触发条件写在敏感信号表达式之中,当触发条件满足时,其后的语句才能被执行,触发条件列表中的多个条件之间采用“or”来连接。

●当初发条件列表为“*****”时,只要有输入变量发生变化就触发条件,如下,只要A,B,C发生变化,就会执行always块中的语句。

image

例子如下:

image

(2)块语句

在begin-end串行块中,语句按照串行方式顺序执行。

举例如下,想要在clk的上升沿处实现A=B,C=D,E=F功能时,

●若不采用begin-end需要如下代码

image

●采用begin-end时

image

需要注意的是,在一个always块语句中,各语句之间是串行的关系;但多个always块语句是并行的,那上面的例子来说,不采用begin-end时,A=B,C=D,E=F三条语句并行执行,A,C,E同时获得值;采用begin-end时,A=B执行完才执行C=D,以此类推。

(3)赋值语句

①用assign持续赋值

该语句一般用于组合逻辑的赋值,成为连续赋值;例如F=AB + AC;

assign F = (A & B) |(A & C);

②用always过程赋值

当过程赋值较多时,通常采用begin-end构成串行块,在该块中可以对多个变量进行赋值操作;在过程赋值中,只有寄存器类型的变量才能被赋值;

赋值有非阻塞赋值和阻塞赋值;

●非阻塞赋值(**** < =****)

image

假设初始时b为0,当触发后b和a同时分别赋值1和0;也就是说a赋值的是b之前的值。

●阻塞赋值(=)

image

假设初始时b为0,当执行b=1后,b变为1,然后再执行a=b,a赋值为1。

(4)条件语句

两种条件语句if-else语句和case语句,他们都是顺序语句且只能****放在always块内。

①if-else语句

image

②case语句

语句格式:

image

例:当A为01时,输出B为0,A为00,10,11时为1。

image

●关于casex和casez的用法可以参考课本P57以及P59下方的例题

点击上方蓝色按钮可以免费下载verilog语法全部资料

【免责声明】:本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。