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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 9257|回复: 4

[求助] 关于分频程序问题

[复制链接]
发表于 2010-10-21 14:35:49 | 显示全部楼层 |阅读模式

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

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

x
小弟初学Verilog,编了一小段关于分频的程序(输出50%占空比,5分频信号),但编译就是通不过,各位高手有兴趣就请帮忙看看,不胜感激!
下面是源程序:
module hh(clk,k,k1,k2);
input clk;
output k,k1,k2;
reg [2:0]c1;
reg m1;
always @(posedge clk)…………………………第29行
    begin
      if (c1==4)
      begin
         c1<=0;m1<=~m1;
      end
      else c1<=c1+1;
    end
always @(negedge clk)………………………………第37行
    begin
      if (c1==4)
      begin
         c1<=0;m1<=~m1;
      end
      else c1<=c1+1;
    end
      assign k=m1;
endmodule


编译提示的错误:
Error (10028): Can't resolve multiple constant drivers for net "c1[2]" at hh.v(37)
Error (10029): Constant driver at hh.v(29)
Error (10028): Can't resolve multiple constant drivers for net "c1[1]" at hh.v(37)
Error (10028): Can't resolve multiple constant drivers for net "c1[0]" at hh.v(37)
Error (10028): Can't resolve multiple constant drivers for net "m1" at hh.v(37)
Error: Can't elaborate top-level user hierarchy
Error: Quartus II Analysis & Synthesis was unsuccessful. 6 errors, 4 warnings
Error: Peak virtual memory: 170 megabytes
Error: Processing ended: Thu Oct 21 14:37:21 2010
Error: Elapsed time: 00:00:01
Error: Total CPU time (on all processors): 00:00:01
Error: Quartus II Full Compilation was unsuccessful. 8 errors, 4 warnings
发表于 2010-10-21 15:15:16 | 显示全部楼层
首先,你的程序写的不甚规范(连rst信号都没有),刚开始写,一定要养成一个好的编程习惯才好;
其次,分频的程序其实用不着这么复杂的,不知道你为什么要用两个always块儿。
这也直接导致了错误的发生(多驱动)---------不能在多个always块中对同一个变量进行赋值。
你程序中的c1和m1在两个always块中都赋值了。
 楼主| 发表于 2010-10-21 20:28:20 | 显示全部楼层
根据楼上的指正,小弟又写了一段,但是结果还是不是想要的,望赐教!
源程序如下:
module hh(clk,k,k1,k2);
input clk;
output k,k1,k2;
(*synthesis,probe_port,keep*) reg [2:0]c1,c2;

reg m1,c;
always @(posedge clk)
     c1<=c1+1;
always @(negedge clk)
     c2<=c2+1;
always@(c1 or c2)
begin
   c<=c1+c2;
   if (c==4)
   begin
     c<=0;
     c1<=0;
     c2<=0;
     m1<=~m1;
   end
end
assign k=m1;
endmodule

编译提示没有错误,就是结果出不来,多谢指正!
发表于 2010-10-21 22:43:57 | 显示全部楼层
太好了太赞了~~
太好了太赞了~~
发表于 2010-10-22 12:01:45 | 显示全部楼层
你可以把三个always合并在一个里面写,没必要分开来,因为分频器是同步设计,进城的激活都是依赖于时钟触发的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-19 20:35 , Processed in 0.031982 second(s), 9 queries , Gzip On, Redis On.

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