FPGA学习之Verilog语法

Posted 满足没有

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FPGA学习之Verilog语法相关的知识,希望对你有一定的参考价值。

FPGA学习之Verilog语法

最近在学FPGA,做点笔记。。。

1.Verilog代码设计规范

1.一个always只产生一个信号,一个信号只能在一个always中赋值


2.always 是描述一个信号的方法,在某种情况下,这个信号的值为多少;在其他情况下,值又为多少,全部要考虑清楚


3.条件判断只用 If - else / if - else if - else 和case


4.敏感列表含有 posedge 或 negedge 的一定是时序逻辑


5.设计时,想要立即有结果,用组合逻辑; 想延时一拍再输出,用时序逻辑


6.always中的信号一定用reg 定义,非always中的信号一定用wire定义


7.时序逻辑用非阻塞赋值(<=),组合逻辑用阻塞赋值(=)

2.reg(组合和时序逻辑)

reg和wire类似,但它可以用来存储信息(状态),就像寄存器

1.reg可以连接到模块实例化的输入端口


2.reg不能连接到模块实例化的输出端口


3.reg可以用作实际模块声明中的输出


4.reg不能用作实际模块声明中的输入


5.reg时always模块中 = 或者 <= 左侧的唯一正确类型


6.reg时initial模块中 = 左侧唯一的合法类型


7.reg 不能用在assign 的左边


8.reg当与always@(posedge clk)块结合使用时,reg可用于创建寄存器

3.Wire(组合逻辑)

1.wire 用来连接模块实例化的输入和输出端口


2.wire用作实际模块声明中输入和输出


3.wire元素必须由某些东西驱动,并且没有驱动的情况下,无法存储值


4.wire元素不能用在always模块中=或者<=的左边


5.wire元素是assign语句左侧唯一的合法类型


6.wire元素是在基于Verilog 的设计中连接两片的无状态方式


7.wire只能用在组合逻辑

以上是关于FPGA学习之Verilog语法的主要内容,如果未能解决你的问题,请参考以下文章

FPGA学习之Verilog语法

FPGA学习之 异步FIFO

FPGA学习之 异步FIFO

FPGA学习之 异步FIFO

FPGA学习----Verilog HDL语法

FPGA/verilog 学习笔记—— Verilog基础语法