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

原文地址:https://www.cnblogs.com/maskerk/p/7367366.html