FPGA沿触发问题
今天做了一个实验,很简单的程序:module test(input a,output b);
reg b_1=0;
always@(posedge a)
begin
b_1 = ~b_1;
end
assign b = b_1;
endmodule
一般觉得是a来一次上升沿输出会取反一次,但是............神奇的一幕出现了 该如下看看
module test(iput a,output b);
reg b_1=0;
always@(posedge a)
begin
if( a == 1)
b_1 = ~b_1;
else
b_1 = b_1;
end
assign b = b_1;
endmodule
sczh0001 发表于 2013-8-4 14:52 static/image/common/back.gif
该如下看看
module test(iput a,output b);
reg b_1=0;
还是一样的现象,没有变化 复制的你的代码,仿真出来如图,没有问题。
你仿真的有问题吧 流氓马 发表于 2013-8-4 15:04 static/image/common/back.gif
复制的你的代码,仿真出来如图,没有问题。
你仿真的有问题吧
我用频率固定的时钟作a的信号和你的结果一样,但如果输入a不是标准时钟呢?只是不规则的高低电平变化再试试不是你的结果啊 你指的这种情况? 流氓马 发表于 2013-8-4 15:46 static/image/common/back.gif
你指的这种情况?
恩?奇怪了...我的仿真出错了难道,但是我烧到板子上为什么也不对啊...纠结死我了 用 <=
一楼象是自激振荡。
module test(input a,output b);
reg b_1=0;
always@(posedge a)
begin
b_1 <= ~b_1;
end
assign b = b_1;
endmodule 烧到板子上不对?a不会是按键输入吧。。。。。。没有抖动之类的? xlwxdl1 发表于 2013-8-4 16:21 static/image/common/back.gif
烧到板子上不对?a不会是按键输入吧。。。。。。没有抖动之类的?
按键做过硬件消抖了,从示波器上看按键没有毛刺 不同仿真软件不一样的 你还是用专门的编译环境 编译下载的芯片试一下好了 用逻辑分析仪捕捉信号看一下 我后来找到原因了,我在硬件消抖后按键上升沿变成了一个弧线(放大波形后才发现波形中还有点抖动),重新做了软件消抖就没问题了,看来还是不能偷懒啊,软件仿真还是很靠谱的。至于仿真出错,我猜我有些地方搞错了。 仿真一下,正确。 sky_prince 发表于 2013-8-6 17:44 static/image/common/back.gif
仿真一下,正确。
我发现我仿真有问题了后来,谢谢大家的帮助 楼主你用的啥仿真软件啊? yuyu87 发表于 2013-8-7 16:36 static/image/common/back.gif
楼主你用的啥仿真软件啊?
ModelSim se 10.0c 顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶 代码没有问题,{:biggrin:} 代码写的看不下去
页:
[1]