求救大侠~~~help
时间:10-02
整理:3721RD
点击:
小弟写了一个程序,其中有段如下:
always @(negedge ValidCLK or posedge RST_P or negedge ClockValid)
begin
if(RST_P)
PeriodDown = 1;
elseif(!ClockValid)
PeriodDown = 1;
elsePeriodDown = (~PeriodDown);
end
要实现的功能是在时钟下降沿的时候,PeriodDown翻转并输出,本来的波形应该是10101010101的,可是最后得到的波形是010101010101,刚好与预想的相反,求救大虾指点为什么这样的?
always @(negedge ValidCLK or posedge RST_P or negedge ClockValid)
begin
if(RST_P)
PeriodDown = 1;
elseif(!ClockValid)
PeriodDown = 1;
elsePeriodDown = (~PeriodDown);
end
要实现的功能是在时钟下降沿的时候,PeriodDown翻转并输出,本来的波形应该是10101010101的,可是最后得到的波形是010101010101,刚好与预想的相反,求救大虾指点为什么这样的?
应该是10101010101, 你应该从rst之后就看波形,rst之后PeriodDown =1,rst之后的第一个validclk下降延就变成了0,如果仿真时rst和validclk下降延太接近了的话看上去就是010101010101了。
我看过了,我在maxplus2那进行硬件检验,看波形,发现那rst后的PeriodDown的值一直没有置1,我想问问是不是软件有问题还是什么?还有个问题就是在这个小模块里面,可以用PeriodDown=(~PeriodDown)进行翻转的吗?谢谢小编
回复 #1 zhengguandong 的帖子
我刚试了一下,没有问题呀。
你看看你选用的引脚是不是有什么问题呀?