关于数据位扩展的问题

[复制链接]
1931|1
 楼主| snowtx 发表于 2008-5-4 10:21 | 显示全部楼层 |阅读模式
ST, ic, logic, AD, ni
今天看到一个程序,两个8位带符号数相加,要考虑到数据位扩展的问题,程序如下:<br /><br />library&nbsp;ieee;<br />use&nbsp;ieee.std_logic_1164.all;<br />use&nbsp;ieee.std_logic_signed.all;<br /><br />entity&nbsp;Add2In&nbsp;is<br />&nbsp;&nbsp;&nbsp;port(&nbsp;D1:in&nbsp;std_logic_vector(7&nbsp;downto&nbsp;0);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;D2:in&nbsp;std_logic_vector(7&nbsp;downto&nbsp;0);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Q&nbsp;:out&nbsp;std_logic_vector(8&nbsp;downto&nbsp;0);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Clk:&nbsp;in&nbsp;std_logic);<br />end&nbsp;Add2In;<br /><br />architecture&nbsp;A_Add2In&nbsp;of&nbsp;Add2In&nbsp;is<br />begin<br />&nbsp;&nbsp;process(Clk)<br />&nbsp;&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;Clk&nbsp;=&nbsp;'1'&nbsp;and&nbsp;Clk'event&nbsp;then&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Q&nbsp;&lt=&nbsp;(D1(D1'left)&D1)+(D2(D2'left)&D2);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;if;<br />&nbsp;&nbsp;end&nbsp;process;<br />end&nbsp;A_Add2In;<br /><br />里边的Q&nbsp;&lt=&nbsp;(D1(D1'left)&D1)+(D2(D2'left)&D2);这句应该是数据位扩展,但我怎么也看不明白这个语句是怎么组合的,请大家指教一下,谢谢!
cbutterfly 发表于 2008-5-4 16:16 | 显示全部楼层

画个真值表,卡诺图吧

画个真值表,卡诺图吧<br />&nbsp;&nbsp;&nbsp;&nbsp;大学里学的东东还是值得怀念的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

20

主题

66

帖子

0

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