在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 5110|回复: 15

[求助] 关于Verilog写的一段CPLD的程序,诚恳求学

[复制链接]
发表于 2012-5-15 10:47:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
module test3(b,clk);
input clk;
output reg b;
reg[2:0] count1;

always@(posedge clk)
begin
    if(count1==3)      
       begin
          b<=~b;
          count1<=0;
       end
    else
       begin
       count1<=count1+1;
       end
end
endmodule


我刚开始学习CPLD,这是在我脱离书本写第一个程序时遇到的困难
目的是产生一个4分频的波形 输入为clk 输出为b
这个程序仿真之后clk的波形是正确的,但是b没有波形,是一根红线
我当时怀疑是b需要赋值之后才可以产生波形,但是怎么都想不到要如何初始化这个b
我朋友是说使用时 b会有一个确定的值,这一点我并不确定
在书上也没有看到有关的说明

我尝试在else中加入了一个 b<=0 的语句,于是波形在第二次上升沿的时候产生了波形
然后我将if当中的b<=~b  移到else中,波形没有产生
我以此推断,b要在程序中赋值一个确定的值,才会产生波形
另外,当我在else中加入b<=0 时
按理说也应该产生一个高电平占空比为1/4的波形,为何我看到的仿真波形一直是低电平

诚恳求指导,有什么说什么
 楼主| 发表于 2012-5-15 11:30:46 | 显示全部楼层
  自己顶一下~求助啊~
发表于 2012-5-15 12:39:06 | 显示全部楼层
加个reset部分
 楼主| 发表于 2012-5-15 16:51:04 | 显示全部楼层
回复 3# zzczx


    我看的verilog的书好像没有提到reset的内容求指点方向
发表于 2012-5-15 17:01:20 | 显示全部楼层
这个程序貌似不是4分频吧。。。
always @(posedge CLK or negedge RSTn)
if(!RSTn)
begin
b<=0;
count1<=0;
end
发表于 2012-5-15 17:24:02 | 显示全部楼层
如果板级调试的话可以不用RESET。仿真的话,如果不加就会只有一条红线。。。。。
 楼主| 发表于 2012-5-15 17:34:59 | 显示全部楼层
回复 5# yanrenyi


    请问你这个程序当中的信号negedge RSTn 是在仿真的时候自动产生并且触发的嘛?
    如果不是,那么这个信号的下降沿,依然不可能出现在时间轴的最开始
   这个情况怎么办呢?
发表于 2012-5-15 17:37:47 | 显示全部楼层
最好还是用下reset复位吧,
如果不想用的话,可以加条initial b = 0; 这样初始化为0, MS这样综合后也是可以为0的(VHDL有这样的初始赋值语句,对于verilog initial语句能否综合有点疑问,)
 楼主| 发表于 2012-5-15 17:39:27 | 显示全部楼层
回复 6# 极寒领域


    是不是在板子上测试的时候,b作为一个输出,如果不做任何操作,一定是一个定值呢?
   另外在测试当中这个复位要怎么做?
我大概理解你的意思,但是我找了资料没有找到,希望能得到你的帮助
我学这个的过程中没有看到过相关的说明,所以很迷茫,连找资料都不知道怎么找了。。。迷茫啊
 楼主| 发表于 2012-5-16 08:58:52 | 显示全部楼层
继续求助。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

X

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-5-29 08:36 , Processed in 0.041178 second(s), 9 queries , Gzip On, MemCached On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表