![](https://img-blog.csdnimg.cn/20190918140213434.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Verilog HDL
文章平均质量分 81
使用硬件描述语言(VHDL,Verilog HDL,业界公司一般都是使用后者)将模块功能以代码来描述实现,也就是将实际的硬件电路功能通过HDL语言描述出来,形成RTL(寄存器传输级)代码。
CuteBaBaKiller
这个作者很懒,什么都没留下…
展开
-
for循环的用法
always-for只会产生一个实例块,因为for循环在always的内部;generate-for-endgenerate会根据迭代的次数生成对应的多个实例块。原创 2023-02-28 23:08:09 · 2799 阅读 · 0 评论 -
task与function
task和function主要是有助于代码的可重用性,都可以在module-endmodule之外声明。原创 2023-02-23 15:57:03 · 634 阅读 · 0 评论 -
case的使用
一个x/z可以用来定义十六进制(h)数的4位二进制的状态,八进制(o)数的3位,二进制(b)数的1位,或者十进制(d)数的整体值。 举例如下: 4'b10x0 //位宽为4的二进制数,其bit1为不定值 8'h4z //位宽为8的十六进制数,其低4bit为高阻态(第1种表达方式) 12'd?原创 2023-02-22 16:42:59 · 1148 阅读 · 0 评论 -
阻塞赋值与非阻塞赋值
阻塞(blocking)赋值方式(如 b=a)①赋值语句立即执行,执行完毕后才执行下一条语句(即为阻塞的含义,依次顺序执行);②b的值在赋值语句执行完后立即改变。非阻塞(Non_blocking)赋值方式(如 b<=a)①语句执行到此时,先计算“<=”右侧a的值,但不立即赋值给b;②always块结束后才完成此次赋值操作;③这是时序逻辑模块最常用的赋值方法。...原创 2018-11-22 13:55:02 · 15833 阅读 · 3 评论 -
Verilog中的生成块
生成语句可以动态地生成Verilog代码。当对矢量中的多个位进行重复操作时,或者当进行多个模块的实例引用的重复操作时,或者在根据参数的定义来确定程序中是否应该包括某段Verilog代码的时候,生成语句的使用方便了参数化模块的生成。 生成语句能够控制变量的声明、任务或函数的调用,还能对实例引用进行全面的控制。关键字generate-endgenerate来指定生成的...原创 2018-11-23 16:46:11 · 2841 阅读 · 0 评论