麻烦大家解释下这段VHDL代码,谢谢

[复制链接]
2829|1
 楼主| sdnd2000 发表于 2007-5-18 20:22 | 显示全部楼层 |阅读模式
我是初学者,这是书上的一段VHDL的移位寄存器程序,有些地方不是很明白,麻烦大家解释下。<br /><br />library&nbsp;ieee;<br />use&nbsp;ieee.std_logic_1164.all;<br />entity&nbsp;74_sl_165&nbsp;is&nbsp;<br />port&nbsp;(&nbsp;clk,c0:&nbsp;in&nbsp;std_logic;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;md:&nbsp;in&nbsp;std_logic_vector(2&nbsp;downto&nbsp;0);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d&nbsp;:&nbsp;in&nbsp;std_logic_vector(7&nbsp;downto&nbsp;0);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;qb:&nbsp;out&nbsp;std_logic_vector(7&nbsp;downto&nbsp;0);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cn:&nbsp;out&nbsp;std_logic);<br />end&nbsp;entity;<br />architecture&nbsp;behav&nbsp;of&nbsp;74_sl_165&nbsp;is<br />signal&nbsp;reg:&nbsp;std_logic_vector(7&nbsp;downto&nbsp;0);<br />signal&nbsp;cy&nbsp;:&nbsp;std_logic;<br />begin<br />process(&nbsp;clk,md,c0)<br />begin<br />if&nbsp;clk'event&nbsp;and&nbsp;clk='1'&nbsp;then<br />case&nbsp;md&nbsp;is<br />when&nbsp;&quot;001&quot;=&gt&nbsp;reg(0)&lt=c0;<br />&nbsp;&nbsp;&nbsp;reg(7&nbsp;downto&nbsp;1)&nbsp;&lt=reg&nbsp;(6&nbsp;downto&nbsp;0);&nbsp;cy&lt=reg(7);<br />when&nbsp;&quot;010&quot;=&gtreg(0)&lt=reg(7);<br />reg(7&nbsp;downto&nbsp;1)&lt=reg&nbsp;(6&nbsp;downto&nbsp;0);<br />when&nbsp;&quot;011&quot;=&gtreg(7)&lt=reg(0);<br />reg(6&nbsp;downto&nbsp;0)&lt=&nbsp;reg(7&nbsp;downto&nbsp;1);<br />when&nbsp;&quot;100&quot;=&gtreg(7)&lt=c0;<br />reg(6&nbsp;downto&nbsp;0)&lt=reg(7&nbsp;downto&nbsp;1);cy&lt=reg(0);<br />when&nbsp;&quot;101&quot;=&gtreg(7&nbsp;downto&nbsp;0)&lt=&nbsp;d(7&nbsp;downto&nbsp;0);<br />when&nbsp;others=&gt&nbsp;reg&lt=reg;&nbsp;cy&lt=cy;<br />end&nbsp;case;<br />end&nbsp;if;<br />end&nbsp;process;<br />qb(7&nbsp;downto&nbsp;0)&lt=reg(7&nbsp;downto&nbsp;0);&nbsp;cn&lt=cy;<br />end&nbsp;behav;<br />几点不明白的地方:<br /><br />1.MD,&nbsp;D,CN这三个端口作用,如果MD是移位控制字那怎么是3位的,不都是2位吗。<br /><br />2.cy&lt=reg(7)和cy&lt=reg(0)这两句的作用是什么呀?<br /><br />3.这是个什么样寄存器,感觉和4个D触发器组成的寄存器不太一样。<br /><br />呵呵,我是新手,大家别见笑,谢谢。<br />
wuw 发表于 2007-5-18 23:45 | 显示全部楼层

个人意见

循环寄存器,可以左右移位的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

17

帖子

0

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