书第271页
1。n位寄存器代码:
module regn(R,Rin,clk,Q);
//Rin含义:若Rin=1,则组成寄存器的n个触发器被来自于输入信号R的n个数位加载,否则这n个触发器保持当前数据不变。
parameter n=8;
input [n-1:0] R;
input Rin,clk;
output [n-1:0] reg Q;
always @(posedge clk)
if(Rin)
Q<=R;
endmodule
2.n位三态模块代码:
module trin(Y,E,F);
parameter n=8;
input [n-1:0] Y;
input E;
output [n-1:0] F;
assign F=E?Y:'bx;//我们不能把高阻态定义为n'bz,因为verilog语法规定不能使用参数来规定位数的大小。
endmodule
3.移位寄存器实现的控制电路代码:
module shiftregister(reset,w,clk,Q);
parameter m=4;
input reset,w,clock;
output [1:m] reg Q;
integer k;
always @(negedge reset,posed