verilog学习笔记(1)_两个小module
第一个小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
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步