e1与c1同时得到信号吗?为什么?

[复制链接]
2523|3
 楼主| shuai1 发表于 2009-3-21 19:12 | 显示全部楼层 |阅读模式
SIGNAL&nbsp;in1,in2,...:STD_LOGIC;<br />...<br />PROCESS(in1,in2,...)<br />VARIABLE&nbsp;c1,...:STD_LOGIC_VECTOR(3&nbsp;DOWNTO&nbsp;0);<br />&nbsp;&nbsp;BEGIN<br />&nbsp;&nbsp;&nbsp;&nbsp;IF&nbsp;in1='1'&nbsp;THEN...<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e1&lt=&quot;1010&quot;:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...<br />&nbsp;&nbsp;&nbsp;&nbsp;IF&nbsp;in2='0'&nbsp;THEN&nbsp;...<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c1:=&quot;0011&quot;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...<br />&nbsp;&nbsp;&nbsp;&nbsp;END&nbsp;IF;<br />END&nbsp;PORCESS;
Fourier00 发表于 2009-3-21 21:11 | 显示全部楼层

可以

可以<br />建议不要这样写<br />可以写成<br />always&nbsp;@(posedge&nbsp;clk&nbsp;or&nbsp;negedge&nbsp;rst_n)<br />if(rst_n&nbsp;==&nbsp;1'b0)<br />&nbsp;&nbsp;&nbsp;e&lt=&nbsp;4'd0<br />else&nbsp;if(in1==1'b1)<br />&nbsp;&nbsp;&nbsp;e&lt=4'b1010<br />end<br /><br />always&nbsp;@(posedge&nbsp;clk&nbsp;or&nbsp;negedge&nbsp;rst_n)<br />if(rst_n&nbsp;==&nbsp;1'b0)<br />&nbsp;&nbsp;&nbsp;c&lt=&nbsp;4'd0<br />else&nbsp;if(in2&nbsp;==&nbsp;1'b0)&nbsp;<br />&nbsp;&nbsp;&nbsp;c&lt=4'b0011<br />end<br />
sophi@ 发表于 2009-4-9 22:05 | 显示全部楼层

不能

应为信号E1有延迟(是信号)&nbsp;&nbsp;&nbsp;而C1是变量(定义的)C1比E1快
wujing198 发表于 2009-4-9 22:30 | 显示全部楼层

╮(╯▽╰)╭

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

38

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部