Verilog
文章平均质量分 57
liuyihui89
这个作者很懒,什么都没留下…
展开
-
Verilog中wire和reg数据类型的区别
对模块中所用到的所有信号(包括端口信号、节点信号等)都必须进行数据类型的定义。如果信号的数据类型没有定义,综合器将其默认为wire型。wire表示直通,即只要输入有变化,输出马上无条件地反映;reg表示一定要有触发,输出才会反映输入。不指定就默认为1位wire类型。专门指定出wire类型,可能是多位或为使程序易读。wire只能被assign连续赋值,reg只能在initial和always原创 2013-08-02 22:35:33 · 4367 阅读 · 0 评论 -
Verilog同步复位的解决方法
先来明确下什么是同步复位:同步复位:就是指复位信号只有在时钟上升沿到来时,才能有效,否则无法完成对系统的复位工作。用verilog描述如下:always @ (posedge clk)begin if (!Rst_n) ...end异步复位:它是指无论时钟沿是否到来,只要复位信号有效,就对系统进行复位。用Verilog描述如下:always @ (posedge c原创 2013-08-10 00:29:47 · 3346 阅读 · 0 评论 -
Verilog一个小程序:采用casez语句描述数据选择器
本程序包括功能模块和testbench。本程序的功能模块实现的是一个带优先级的数据选择器(低位优先级高)。本程序说明的问题:1、casez的敏感表达式的值中“?”代替的位表示不考虑;2、casez会将激励信号z判断为与四值信号(0、1、x、z)都相等。代码如下:1、功能模块://mux.vmodule mux(out,a,b,c,d,select);output[1:0]原创 2013-08-02 23:17:12 · 2566 阅读 · 0 评论 -
编写Verilog的几条经验
1、编写接口时,如果uut(底层模块)的两个(或以上)控制寄存器的有效位总和小于等于数据总线的位宽,可以将控制寄存器合并。比如数据总线位宽为32位,uut有两个指令寄存器:cmd_mod(模式控制寄存器)、cmd_wr(读写控制寄存器)。这两个寄存器的有效位都是四位。那么编写接口时,可以将二者合并为一个原创 2013-08-10 12:07:41 · 1693 阅读 · 0 评论