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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3022|回复: 6

5分频代码的遇到的问题

[复制链接]
发表于 2009-11-4 21:19:56 | 显示全部楼层 |阅读模式

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

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

x
关于我写的5分频代码的疑惑
module div5_freq(clk_in, rst_n,clk_out);
input clk_in;
input rst_n;
output clk_out;
reg clkp;
reg clkn;
reg[2:0] countp;
reg[2:0] countn;
parameter div1 = 2 , div2 = 4;   // div1=5 / 2, div2 = 5 - 1
assign clk_out = clkp | clkn;
[email=always@(posedge]always@(posedge[/email] clk_in or negedge rst_n)
begin
   if(!rst_n)
      clkp <= 0;
   else if(countp == div1)
     clkp <= ~clkp;
   else if(countp == div2)
     clkp <= ~clkp;
   else
     clkp <= clkp;
end
[email=always@(negedge]always@(negedge[/email] clk_in or negedge rst_n)
   if(!rst_n)
     clkn <= 0;
  else if(countn == div1)
       clkn<=~clkn;
  else if(countn == div2)
    clkn <=~ clkn;
   else
   clkn <= clkn;
[email=always@(posedge]always@(posedge[/email] clk_in or negedge rst_n)
   if(!rst_n)
      countp <= 0;
   else if(countp == div2)
     countp <= 0;
   else
     countp <= countp + 1;
[email=always@(negedge]always@(negedge[/email] clk_in or negedge rst_n)
   if(!rst_n)
     countn <= 0;
   else if(countn == div2)
     countn <= 0;
   else
    countn <= countn + 1;
endmodule
我发现这里输出变量clk_out没有定义类型,且我尝试着给输出定义为reg型。run之后结果发现仿真没完没了的进行,且仿真窗口也没有波形产生!
请问这是问什么?
发表于 2009-11-5 09:32:13 | 显示全部楼层
第一,clk_out定义成output,默认就是wire类型

你定义成reg还能用assign??工具没报错就是我脑子短路了

仿真进行不下去的原因是,你有一个组合逻辑的环路存在,因为没有加入延迟信息,因此某一点或者几点的值一直在变化中,所以仿真始终处于这个时间点上进行不下去。代码都是时序逻辑,不会有这个问题,你查查你的TB
 楼主| 发表于 2009-11-5 09:35:17 | 显示全部楼层
关于楼上回答,我也尝试过output定义成reg,但是我用的always clk_out = clkp | clkn;也是运行不下去!
应该tb没问题的。因为我不定义输出类型时,运行很好!
发表于 2009-11-5 11:38:57 | 显示全部楼层
always clk_out = clkp | clkn...
....这句话...麻烦要么你always后面加个#1,或者写成时序逻辑
不然就是每0个时间后做clk_out的赋值..不死才怪了...- -+
发表于 2009-11-5 13:08:51 | 显示全部楼层
定义成wire应该不会有问题了。
发表于 2009-11-6 09:09:53 | 显示全部楼层
默认就是wire, 不用加的,
看看你的testbench吧。
发表于 2009-11-6 17:08:21 | 显示全部楼层
典型的新人,哈哈~~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-11-17 08:52 , Processed in 0.018380 second(s), 6 queries , Gzip On, Redis On.

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