集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 2047|回复: 2

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

[复制链接]
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 [3:0]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 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2024-12-24 00:35 , Processed in 0.058271 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表