VHDL-优先级语句中的前后赋值

[复制链接]
2842|0
 楼主| xyuding 发表于 2007-12-18 11:28 | 显示全部楼层 |阅读模式
VHDL, se, RS, tca, tc
Hi,各位高手高手之高高手。<br />兄弟最近学习一位强人的代码,有如下片断。<br />原意是根据case_out产生一个时钟宽度的使能信号,软件仿真当然没问题啦。<br />只不过,这种利用优先级语句中的前后赋值,在最后的硬件实现中会不会产生不可预知的状态。<br />欢迎讨论。<br />--------------------------------------------<br />process(osc_50,hrst_n)<br />begin<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;hrst_n='0'&nbsp;then<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case_out&lt=(others=&gt'0');<br />&nbsp;&nbsp;&nbsp;&nbsp;elsif&nbsp;rising_edge(osc_50)&nbsp;then<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case_out&lt=(others=&gt'0');<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;case_in&nbsp;is<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when&nbsp;&quot;0000&quot;&nbsp;=&gtcase_out(0)&lt='1';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when&nbsp;&quot;0001&quot;&nbsp;=&gtcase_out(1)&lt='1';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when&nbsp;&quot;0010&quot;&nbsp;=&gtcase_out(2)&lt='1';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when&nbsp;&quot;0011&quot;&nbsp;=&gtcase_out(3)&lt='1';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when&nbsp;others=&gt&nbsp;null;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;case;<br />&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;if;<br />end&nbsp;process;<br />--------------------------------------------<br />
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

6

帖子

0

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