|
发表于 2007-6-29 15:25:51
|
显示全部楼层
// 12为寄存器,示例程序,附带测试程序
// 以后按这个编写 就OK
module reg12(d,clk,q);
`define size 11
input[`size:0] d;
input clk;
output[`size :0] q;
reg [`size:0] q; // 在always,initial等过程内赋值,每个信号必须是reg类型
always@(posedge clk)
q <= d;
endmodule
// 对于clk,d的数据类型没有说明,则为默认的wire类型
// reg型数组变量即为memory型变量,可定义存储型数据,eg: reg[7:0]a[255:0];
// register与nets类型区别:register类型需要明确被赋值,而nets输出始终随输入变化(物理连接)
//对应的 testbench 程序
`timescale 1ns/100ps
module test();
parameter size=11;
reg[size:0] d;
reg clk;
wire[size:0] q;
always #5 clk=~clk;
initial
begin
clk=0;
#10 d=0;
#10 d=1;
#10 d=2;
#10 d=3;
#10 d=4;
#10 $stop;
end
reg12 t(.d(d),.clk(clk),.q(q)); // 位置映射
endmodule
[em07] |
|