个人博客:https://www.lhbat.com
参考资料:Verilog数字系统设计与FPGA应用
Verilog HDL 系统的设计
步骤:
- 1.把系统划分成模块
- 2.规划各模块的接口
- 3.对模块的编程并连接各模块的系统设计
Verilog HDL 程序的基本结构
module模块名(端口列表)
端口定义:
- input 输入端口
- output 输出端口
- inout 输入输出端口
数据类型说明:
- wire
- reg
- parameter
逻辑功能描述:
- 实例化低层模块和基本门级元件
- 连续赋值语句(assign)
- 过程块结构(initial和always)
endmodule
模块声明:
模块声明包括模块名和端口列表
端口定义:
端口是模块与外界环境的接口
信号类型说明:
分为端口信号和内部信号
如:寄存器类型: reg 连线类型:wire
// 定义端口的位宽
module test(addr,read,write,datain,dataout)
input[7:0] datain;
input[15:0] addr;
input read,write;
output[7:0] dataout;
wire addr,read,write,datain;
reg dataout;
模块中逻辑功能描述
模块中最核心的部分是逻辑功能描述。
逻辑功能描述的三种方法:
- 1 .用assign 连续赋值语句(多用在输出信号和输入信号可以建立直接联系的情况下)
如assign{co,sum} =a+b; - 2 .调用元件(侧重电路的结构描述)
- 3 .用always过程快赋值
如:
always @ (posedeg clk)
begin
if (reset) out = 0;
else out = out + 1;
end