longtim 发表于 2010-6-26 00:56:36

想为下一个模块产生一个使能信号如何写比较好

本帖最后由 fpgaw 于 2010-7-18 13:37 编辑

想为下一个模块产生一个使能信号如何写比较好
按下面的写法会提示一个警告:
set signal should not be driven by combinational logic




`timescale 10ns / 1ns
module teset(
clk,
reset,
dataout);
input clk;
input reset;
output dataout;
reg en;
always @(posedge clk)
if(!reset)
en<=0;
else
en<=1;
assign en=1;
clkgen clkgen(
clk,
reset,
clkout2);
data_out data_out(
clk,
clkout2,
reset,
en,
dataout);
endmodule

UFP 发表于 2010-6-26 01:19:53

把"assign en=1;"这一句取掉.因为只要时钟的上升沿en就为1,而你的assign en=1;这一句直接给en赋值为1,这样是不对的,这样你的reset就失去了作用。修改方法一种是去掉"assign en=1;"另一种是<br>
always @(posedge clk)<br>
&nbsp;&nbsp;if(!reset)<br>
&nbsp; &nbsp;en&lt;=0;<br>
&nbsp;&nbsp;else<br>
&nbsp; &nbsp;en&lt;=1;<br>
把上面的always语句去掉。<br>
在quartusII中combinational logic为组合逻辑反馈,程序是必须要修改的。

CCIE 发表于 2010-6-26 03:04:48

没看明白。。。。。
页: [1]
查看完整版本: 想为下一个模块产生一个使能信号如何写比较好