集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 1537|回复: 3

最近帮新手看程序,发现的一个小问题,请大家也帮忙看看

[复制链接]
smallwind1 发表于 2011-3-6 15:48:25 | 显示全部楼层 |阅读模式
module hello(clk,out,div);

input clk;
output out;
output div;

reg [2:0] div;
reg out;


always@(posedge clk)
begin
    if(div==2)
       out <= 1;
    else if(div==5)
       out <= 0;
    else
      div <= div +1;
   
end

endmodule

为啥用modesim仿真的时候clk信号变化,但是输出信号就是没变化呢?
我改成
module hello(clk,out);

input clk;
output out;



reg out;


always@(posedge clk)
begin
out = ~out;
end

endmodule

还是看不到out输出波形的变化,是不是说不能用clk时钟直接去控制输出信号呢?
njithjw 发表于 2011-3-6 20:34:45 | 显示全部楼层
你没有对out和div信号赋初始值。
 楼主| smallwind1 发表于 2011-3-6 21:12:18 | 显示全部楼层
回复 2# njithjw


    不是你说的原因,就是给赋了初值还是不对,我试过了
邱老师 发表于 2011-3-6 22:43:41 | 显示全部楼层
always@(posedge clk  or   negedge    rst_n)
if(!rst_n)
     div<=0;
else if(div==2)
       out <= 1;
else if(div==5)
       out <= 0;
else
      div <= div +1;
通过异步复位给div信号一个初始值,否则无法计数
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2025-6-22 10:08 , Processed in 0.199083 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表