马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
本帖最后由 changan1216 于 2013-4-22 12:06 编辑
求解:组合逻辑always语句的敏感信号为何会被综合器优化掉? 一个对组合逻辑always语句测试的简单代码,如下:
- reg out;
- always @(ctl)
- out = in;
复制代码
综合后形成的实际电路结构,以及仿真波形却等效于如下代码:
- wire out;
- assign out = in;
复制代码
综合后控制变量ctl被优化掉了,实际电路如下:
仿真波形如下: 前仿真:可以实现always @(ctl)中,敏感信号ctl对语句内代码的触发
后仿真:敏感信号ctl完全不起作用
Quartus+ModelSim /ISE 均是同样结果 求解:组合逻辑always语句的敏感信号为何会被综合器优化掉? 初步怀疑,如果使用always语句内部没有涉及到的信号做敏感信号,则综合时会被综合器直接砍掉…… 完全失去代码本来目的....... 不知原因为何如此.求高手解答 初步怀疑,是否因为用always语句内没有涉及的信号做为敏感信号 源代码如下: ---------设计模块代码-------------------
- module t1(in, out, ctl);
- input in, ctl;
- output out;
-
- reg out;
- always @(ctl)
- out = in;
-
- // wire out;
- // assign out = in;
- endmodule
复制代码 ----------测试模块代码----------------
- `timescale 1ns/1ps
- module t1_tb();
- reg in, ctl;
- wire out;
-
- t1 t1_inst(
- .in (in),
- .out(out),
- .ctl(ctl)
- );
-
- initial
- begin
- in = 1;
- ctl = 1;
- #270
- ctl = 0;
- end
-
- always #50 in = ~in;
- endmodule
复制代码
|