完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
module led1(clk,rst,led);
input clk,rst; output led; parameter time_1 = 27'd5000_0000; reg[26:0] cnt; reg led; always @(posedge clk or negedge rst) if(!rst) cnt <= 27'd0; else if(cnt == time_1) cnt <= 27'd0; else cnt <= cnt + 1'b1; always @(posedge clk or negedge rst) if(!rst) led <= 1'b1; else if(cnt == time_1) led <= ~led; endmodule `timescale 1 ns/ 1 ns module led1_vlg_tst(); reg eachvec; reg clk; reg rst; reg cnt; wire led; led1 i1 ( .clk(clk), .led(led), .rst(rst) ); initial begin clk = 0; rst = 0; #100 rst = 1; end always #1 clk = ~clk; endmodule cnt 一直为 x 不计数
|
|
相关推荐
6个回答
|
|
看不懂,只能帮顶了~
|
|
|
|
你为啥第一个if要大写呢
|
|
|
|
|
|
|
|
在tb里面的cnt必然不会计数了,你LED1模块的cnt都没有输出给tb
|
|
|
|
修改一下if,initial begin 中LED进行一个初值赋值,然后就是你的仿真的东西错了,你仿真的是tb,这应该不是你想看的。你应该在modelsim的sim中tb下找到LED1进行仿真
|
|
|
|
你的代码没有问题,我复制后直接仿真可以正常运行。
问题出在你的观察窗口,你观察的是激励文件led1_vlg_tst.v的计数器cnt,它没有逻辑操作,也没有initial初始化,所以一直是x。你把逻辑代码led1.v里的端口添加到仿真窗口,可以正常观察里面计数器cnt的变化。 补充一点,time_1 = 27'd5000_0000有点大,仿真时间有点长,适当改小可以更快观察仿真结果。
|
|
2 条评论
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1735 浏览 1 评论
1482 浏览 0 评论
矩阵4x4个按键,如何把识别结果按编号01-16(十进制)显示在两个七段数码管上?
1696 浏览 0 评论
949 浏览 0 评论
2486 浏览 0 评论
1520 浏览 38 评论
5769 浏览 113 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-1 03:39 , Processed in 0.725110 second(s), Total 95, Slave 73 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号