新手到学fpga彻底迷惑了!求助!!

[复制链接]
2263|3
 楼主| yqyq31601099 发表于 2011-8-31 10:09 | 显示全部楼层 |阅读模式
module ledwater(led,clock,reset_n); //模块名ledwater
output[7:0] led;     //定义LED输出口
input  clock;     //定义时钟输入口
input   reset_n;    //复位
reg[8:0] led_r;     //定义输出寄存器
reg[25:0]   count;                  //时钟分频计数器
wire   div_clk;
assign led = led_r[7:0];    //寄存器输出
//时钟分频
always @ (posedge clock or negedge reset_n)
begin
if(~reset_n)
  count <= 25'd0;
else if(div_clk)
  count <= 25'd0;
else
  count <= count + 1'b1;
end
assign div_clk = (count >= 24000000);
always @ (posedge clock or negedge reset_n)
begin
if(~reset_n)
  led_r <= 9'b111111111;   //是,则重新赋初值
else if(div_clk)
begin
  if(led_r == 9'd0)    //循环完毕吗?
   led_r <= 9'b111111111;   //是,则重新赋初值
  else
   led_r <= led_r << 1;   //是,则输出左移一位
end
end
endmodule





谁能大致写下上面的testbench 我就看这个例子参考下 怎么写啊 哭死了要 谢谢了
utopiaworld 发表于 2011-8-31 20:07 | 显示全部楼层
产生一个时钟的模块 把两个模块连接起来就可以了

initial
begin
forever clk = #5 ~clk;
end
weicz 发表于 2011-9-1 08:47 | 显示全部楼层
module test;
reg clk;
reg rst;
wire [7:0]led;
ledwater led1(led,clk,rst);
initial begin
clk=0;
rst=1;
#50 rst=0;
#50 rst=1;
end
always begin
#5 clk=~clk;
end
endmodule
qiyei2009 发表于 2011-11-7 23:36 | 显示全部楼层
initial
begin
reset_n = 0;
#100;
reset_n = 1;
#5000;
$stop;
end
initial
begin

clk = 0;
forever #10 clk = ~clk;
end
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

143

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部