文章目录
写在前面
本科时学过FPGA的相关课程,因此对于Verilog相关语法的学习重在回顾。
1.Verilog的数据类型
Verilog 最常用的 2 种数据类型就是线(wire)与寄存器(reg)
,其余类型可以理解为这两种数据类型的扩展或辅助。
1.1wire类型
wire 类型表示硬件单元之间的物理连线,由其连接的器件输出端连续驱动。
线类型可以由寄存器类型来赋值;
//以下为位宽为1的情况
wire flag; //声明1bit位宽的线型变量data
reg wr_load_r1, wr_load_r2;
wire flag1 = ~wr_load_r2 & wr_load_r1;
//当位宽大于1时
wire [23:0] data; //声明24bit位宽的线型变量data
1.2reg类型
寄存器用来表示存储单元,它会保持数据原有的值,直到被改写。寄存器不需要驱动源,也不一定需要时钟信号。在仿真时,寄存器的值可在任意时刻通过赋值操作进行改写。
//以下为位宽为1的情况
reg rd_addr;
reg wr_addr;
reg rstn ;
initial begin
rstn = 1'b0 ;
#100 ;
rstn = 1'b1 ;
end
//当位宽大于1时
reg [