verilog学习笔记(1)_两个小module

时间:2021-11-16 14:00:59

第一个小module-ex_module

module ex_module(
input wire sclk,//声明模块的时候input变量一定是wire变量
input wire rst_n,//末尾带有_n或者_b代表低电平有效
input wire [7:0] d,
output reg [7:0] q//明模块的时候output变量可以是wire变量,也可以是reg变量 //reg变量必须在always块里赋值
);
//异步D触发器
always@(posedge sclk or negedge ret_n)//括号内为敏感列表 电平触发或者沿触发 此处为沿触发
if(rst_n == 1'b01)//条件表,这里是组合逻辑
q <= 8'h00 //16进制 1个符号代表4个比特 //沿触发的逻辑里边一定都用<=非阻塞赋值
else q <= d; //同步D触发器
always@(posedge sclk)
if(rst_n == 1'b0)
q <= 8'h00;
else
q <= d;
endmodule

第二个小module-

module ex_wire(
input wire sel,
input wire a,
input wire b,
output wire c
);
//wire 变量一定用assign 连续赋值语句赋值,且必须用阻塞赋值
//assign c = (条件)?a:b;//条件满足执行a,否则执行b
assign c = (sel == 1'b1)? a : b;//a,b可以为reg变量,c一定为wire变量
endmodule