打印

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

[复制链接]
1770|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

粉丝