请教2段程序基本一样,竟然1段能运行1段不能运行verilog语言
本帖最后由 cdust 于 2015-10-16 09:56 编辑always @(posedge clk)
if(!reset) clk_div <= 0;
else if(counter<100)
clk_div <= 1;
else clk_div <= 0;
always @(posedge clk)
if(!reset) led2 <= 1'b0;
elseled2 <= 1;
VERILOG编写 的,在同一个文件里面,上下隔2条空行,CLK_DIV可以出准确的波形,下面的LED2就不能置1,搞了2天多了,实在搞不明白,特来请教群中高人。
全部程序如下
module beep(clk,reset,clk_div,led1,led4);
input clk,reset;
output clk_div,led1,led4;
reg counter;
reg clk_div;
reg tp1;
/*********方波发生器********/
always @(posedge clk)
if(!reset) counter <= 0;
else if(counter==415) counter <= 0;
else counter <= counter+1;
always @(posedge clk)
if(!reset) clk_div <= 0;
else if(counter<100)
clk_div <= 1;
else clk_div <= 0;
///////////////////////////////////////////////
always @(posedge clk)
if(!reset) tp1 <= 0;
elsetp1 <= 1;
assign led1 = clk_div;
assign led4 = tp1;
endmodule
//////////////////////////////////////////为分界线,上面运行正常出波形,下面就是不肯出高电平。郁闷啊。
**********修改添加全部程序 IO配置的没有问题? 仿真看看有波形么 vipjph 发表于 2015-10-15 21:01
IO配置的没有问题?
IO配置了.特地配置的一样
module beep(clk,reset,clk_div,clk_ck,led1,led2,led3,led4);
input clk,reset,clk_ck;
output clk_div,led1,led2,led3,led4;
reg counter;
reg clk_div,ck;
reg led2; 仿真一下吧 always @(posedge clk)
if(!reset) led2 <= 1'b0;
elseled2 <= 1‘b1;
会不会是这个问题? 是仿真不正常,还是示波器/逻辑分析仪测波形不正常?
后者的话检查一下引脚的输出配置
此外为排除问题,可以直接写 assign led2 = 1'b1; 看看
else if(counter<100) clk_div <= 1; 条件不一样,结果当然不一样 有可能复位一直是低电瓶 735953120@qq.co 发表于 2015-10-15 23:32
always @(posedge clk)
if(!reset) led2
试过了,不是这个问题。 wudicgi 发表于 2015-10-15 23:39
是仿真不正常,还是示波器/逻辑分析仪测波形不正常?
后者的话检查一下引脚的输出配置
2个是上下关系,上面一个运行的很好,下面一个,就没有反应。 121854416 发表于 2015-10-16 06:56
else if(counter
这条运行正常 121854416 发表于 2015-10-16 06:57
条件不一样,结果当然不一样
结果是不一样,但是问题是前面一个出结果,下面那个没有结果,2条程序一起运行的,上面一个有反应,下面一条没有反应, 看综合出来的电路图是怎么样的 MDC012170 发表于 2015-10-16 11:34
看综合出来的电路图是怎么样的
请教,有人能教教我哪里出问题了吗?
always下面加begin...end 本帖最后由 cdust 于 2015-10-17 08:04 编辑
121854416 发表于 2015-10-17 07:55
always下面加begin...end
谢谢,但是没有用,加了也一样,上面的没有加也运行的好好的么。奇了怪了。 LED那个IO口有没试过邦定在其他口试过? LZ 再看一遍回复检查一遍的,你的回复和别人指出的可能问题都不对着
你总说上下两段程序是一样的,其实上边那段代码的输出正常的话,只能证明 clk 时钟信号正常,clk_div 分配到的引脚输出正常
你也一直没说是仿真结果不对还是在硬件上跑结果不对,也没说用 assign 直接将 led2 固定为高电平时的结果
光在这怀疑为什么不对没用,得逐一问题检查和排除
没有看到led2的输出啊,只看到led1和4 楼主的程序,用QTII自带的仿真软件运行,reset后LED4输出显示是高电平。 改成posedge clk or negedge reset 就好,
页:
[1]