新手,问verilog-HDL的一个编写问题

[复制链接]
3052|7
 楼主| tanyuekang 发表于 2007-3-29 00:52 | 显示全部楼层 |阅读模式
大家好,我想写一个测试模块,有63个并口输入,当时钟信号为1时,这63个信号会移位,功能我已经写好了,应该也没问题,但进行仿真时,不知为何时钟信号为0时,它也会移位,大体&nbsp;是这样的:<br />时钟信号:<br />initial<br />clk=1'b0;<br />always<br />#10&nbsp;clk=~clk;<br />移位部分:<br />always@(clk==1)<br />begin<br />b=in[1];<br />for(i=1;i&lt63;i=i+1)<br />begin<br />in=in[i+1];<br />end<br />in[63]=b;<br />end<br />但仿真时,结果是这样:<br />0clk=0&nbsp;in=000111111010101100110111011010010011100010111100101000110000100<br />10clk=1&nbsp;in=001111110101011001101110110100100111000101111001010001100001000<br />20clk=0&nbsp;in=011111101010110011011101101001001110001011110010100011000010000<br />大家可以看到,clk为0时,信号in也会移位,是我的程序编写错误吗,请大家指点下,不胜感激!&nbsp;
wrhwindboy 发表于 2007-4-25 21:55 | 显示全部楼层

新手,问verilog-HDL的一个编写问题

always@(clk==1)<br />这句话对吗?<br />
limee 发表于 2007-4-26 16:55 | 显示全部楼层

请把模块和测试向量一起贴上来

  
yb840311 发表于 2007-5-2 15:12 | 显示全部楼层

回复

Verilog&nbsp;HDL中always@(clk==1)括号中一般要写成边沿触发的<br />如:posedge&nbsp;clk&nbsp;&nbsp;&nbsp;这样才可以综合。<br />
zjy32508wj 发表于 2007-5-6 20:57 | 显示全部楼层

一点看法

如果你是用电平触发的话,always后跟信号名,具体是高电平还是低电平有效,就要在always内部定义了,你试试看
xjg121 发表于 2007-5-16 01:06 | 显示全部楼层

猜测

always@(clk==1)有问题,其实现在方针时看作了是跳变的条件(上升沿,下降沿).
liangge005 发表于 2007-5-19 14:12 | 显示全部楼层

回复

0clk=0&nbsp;in=000111111010101100110111011010010011100010111100101000110000100<br />10clk=1&nbsp;in=001111110101011001101110110100100111000101111001010001100001000<br />20clk=0&nbsp;in=011111101010110011011101101001001110001011110010100011000010000<br /><br />请问你的这些结果是在哪里看的,是在maxplusii软件中吗?
liangge005 发表于 2007-5-19 14:13 | 显示全部楼层

完整的模块和测试程序

请给出完整的模块和测试程序
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

13

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部