基于VHDL移位寄存器的设计与实现.EDA课程设计.doc
-
资源ID:11083044
资源大小:118.50KB
全文页数:11页
- 资源格式: DOC
下载积分:4元
快捷下载
会员登录下载
微信登录下载
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
基于VHDL移位寄存器的设计与实现.EDA课程设计.doc
2008级学生EDA课程设计 EDA课程设计报告书课题名称基于VHDL移位寄存器的设计与实现姓 名伍 赞学 号0812201-42院 系物理与电信工程系专 业电子信息工程指导教师周来秀 讲师2011年 6月10日一、 设计任务及要求:设计任务: 设计与实现移位寄存器。设计要求:(1)通过对相应文献的收集、分析以及总结,给出相应课题的背景、意义及现状研究分析。(2)通过课题设计,掌握计算机组成原理的分析方法和设计方法。(3)按要求编写课程设计报告书,能正确阐述设计和实验结果。(4)抱着严谨认真的态度积极投入到课程设计过程中,认真查阅相应文献以及实现,给出个人分析、设计以及实现。指导教师签名: 2011年 06 月 12日 二、指导教师评语:指导教师签名: 2011年 6 月 26 日 三、成绩验收盖章 2011年6 月26日 基于VHDL移位寄存器的设计与实现伍赞(湖南城市学院物理与电信工程系电子信息工程专业,益阳,413002)1设计目的在计算机中常要求寄存器有移位功能。如在进行乘法时,要求将部分积右移在将并行传送的数转换成串行数时也需要移位。因此,移位寄存器的设计是必要的。本次设计的目的就是利用计算机组成原理中移位寄存器的相关知识,通过课程设计更加深入的了解移位寄存器的功能。了解EDA技术,并掌握VHDL硬件描述语言的设计方法和思想,通过学习的VHDL语言结合计算机组成原理中的相关知识理论联系实际,掌握所学的课程知识。通过对移位寄存器的设计,巩固和综合运用所学知识,提高对计算机组成原理的理解。2设计的主要内容和要求本课程设计是关于移位寄存器的设计,它不仅具有存储代码的功能,而且还有左移、右移、并行输入及保持等功能。本设计根据功能的不同,设计了三种移位寄存器。 ( 1 ) 双向移位寄存器。 ( 2 ) 串入串出(SISO)移位寄存器。( 3 ) 串入并出(SIPO)移位寄存器。3 移位寄存器设计过程3.2.1移位寄存器的工作原理用VHDL语言描述任意分频数的分频器,并实现占空比任意设置.每当系统时钟上升沿到来时,计数器就加计数一位(可任意设置为N位),当计数值到达预定值时就对分频时钟翻转.这样就会得到一个连续的时钟脉冲.当移位信号到来时,移位寄存器就对存储的二进制进行移位操作.移位寄存方式可自行设置(可左移,右移,一位移,多位移位寄存)。3.2.2双向移位寄存器的设计电路符号:双向移位寄存器工作原理框图。CLK表示计数器被清除为“0”;一般当为高电平时为触发。如图3.1所示。 TDIRREGCLK OPLDIN OPRDIR 图3.1 双向移位寄存器原理框图双向移位寄存器由VHDL程序实现,下面是其中的一段VHDL代码:library ieee;use ieee.std_logic_1164.all; -IEEE库使用声明use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity tdirreg is port (clk: in std_logic; -声明clk是标准逻辑位类型的输入端口 din: in std_logic; -声明din是标准逻辑位类型的输入端口 dir : in std_logic; -声明dir是标准逻辑位类型的输入端口 op_l: out std_logic; -声明op_l是标准逻辑位类型的输出端口 op_r: out std_logic); -声明op_r是标准逻辑位类型的输出端口end tdirreg;architecture a of tdirreg is signal q: std_logic_vector(7 downto 0); -信号声明语句begin process(clk) -进程语句(clk是敏感信号) begin if clkevent and clk= 1then -条件语句 if dir = 0 then q(0) <= din; -赋值语句 for i in 1 to 7 loop q(i) <= q(i-1); -赋值语句 end loop ; else q(7) <= din; -赋值语句 for i in 7 downto 1 loop q(i-1) <=q(i); -赋值语句 end loop ; end if; end if; end process ; op_l <= q(7); -赋值语句 op_r <= q(0); -赋值语句end a;3.2.3串入串出(SISO)移位寄存器的设计电路符号:串入串出(SISO)移位寄存器工作原理框图。DATA_IN为数据输入端口,数据将从这个端口进入寄存器;DATA-OUT为数据输出端口,数据将从这个端口从寄存器输出;CLK是清零端口。如图3.2所示。 SISODATA_IN DATA_OUTCLK 图3.2 串入串出(SISO)移位寄存器图元符号串入串出(SISO)移位寄存器由VHDL程序实现。下面是其中的部分代码:library ieee;use ieee.std_logic_1164.all; -IEEE库使用声明entity siso is port(data_in : in std_logic; -声明data是标准逻辑位类型的输入端口 clk : in std_logic; -声明clk是标准逻辑位类型的输入端口 data_out : out std_logic); -声明data是标准逻辑位类型的输出端口end siso;architecture a of siso is signal q : std_logic_vector(3 downto 0); -信号声明语句begin process(clk) -进程语句(clk是敏感信号) begin if clk event and clk = 1 then -条件语句 q(0)<=data_in; for i in 1 to 3 loop q(i)<=q(i-1); -赋值语句 end loop; end if; end process; data_out<=q(3); -赋值语句end a;3.2.3串入并出(SIPO)移位寄存器的设计电路符号:串入并出(SIPO)移位寄存器工作原理框图。D_IN是数据输入端口,数据将从这个端口进入串入并出(SIPO)移位寄存器;D_OUT30为数据输出端口,数据将从这个端口从串入并出(SIPO)移位寄存器出来。如图3.3所示。 SIPOD_IN D_OUT30CLK图3.3 串入并出(SIPO)移位寄存器工作框图串入并出(SIPO)移位寄存器由VHDL程序实现。下面是其中的部分代码:library ieee; -IEEE库使用声明use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity sipo is port(d_in : in std_logic; -声明d是标准逻辑位类型的输入端口 clk : in std_logic; -声明clk是标准逻辑位类型的输入端口 d_out : out std_logic_vector(3 downto 0); -声明d是标准逻辑位类型的输出端口end sipo;architecture a of sipo is signal q : std_logic_vector(3 downto 0); -信号声明语句begin process(clk) -进程语句(clk是敏感信号) begin if clk event and clk = 1 then -条件语句 q(0)<=d_in; for i in 1 to 3 loop q(i)<=q(i-1); -赋值语句 end loop; end if; end process; d_out<=q; -赋值语句end a;4 系统仿真4.1双向移位寄存器仿真图分析双向移位寄存器的仿真图,对其仿真图进行仿真分析:dir为一个控制信号,clk为时钟控制信号,din为输入信号,表示要存入的数据,op_r表示右移(从高位到低位)后得到的结果,op_l表示左移(从低位到高位)后得到的结果。如图所示:当dir为0时,op_r输出的是右移的结果,遇到一个clk的下降沿时,输入数据右移一位。op_l输出的是左移的结果,遇到一个clk的下降沿时,输入数据左移一位。当dir为1时,op_r与op_l与上述相反。如图4.1所示。图 4.1 双向移位寄存器仿真图4.2串入串出(SISO)移位寄存器仿真图分析串入串出(SISO)移位寄存器的仿真图,对其仿真图进行仿真分析:clk为时钟控制信号,data_in为输入信号,表示要存入的数据。data_out为输出信号,表示输出的数据。如图所示:当data_in串行输入数据时,遇到一个时钟信号clk,输入数据向右移位,并串行输出数据。如图4.2所示。图4.2串入串出(SISO)移位寄存器的仿真图4.3串入并出(SIPO)移位寄存器仿真图分析串入并出(SIPO)移位寄存器的仿真图,对其仿真图进行仿真分析:clk为时钟控制信号,d_in为串行输入信号,d_out为四位并行输出信号,串行输入信号四位为一组,该信号一位一位的按顺序存入寄存器。如图所示:当串行输入四位数据时,输出一次性并行输出。如图4.3所示。图4.3 串入并出(SIPO)移位寄存器仿真图5 仪器与设备Quartus软件6 设计总结 在做本次课程设计过程中,我感触最深的当属查阅大量的设计资料了。为了让自己的设计更加完善,查阅这方面的设计资料是十分必要的。在做设计之前,对所用寄存器的内部结构有一个系统的了解,知道寄存器的内有哪些资源;要有一个清晰的思路和一个完整的软件流程图;设计时要不断改进是程序设计的必经之路;在设计过程中应该将遇到的问题记录下来,分析清楚,以备下次注意。通过此次设计,了解到理论知识与实践相结合的重要意义,学会了坚持、耐心和努力。设计的过程中出现了不少问题,在大家伙的共同努力下,最终都得以解决,这锻炼我们发现问题,解决问题的能力,这次课程设计也在一定程度上锻炼了我的团队协作能力,我相信这对于我今后走上社会工作时一定会有所帮助。也感谢老师对我的指导!参考文献1潘松.VHDL实用教程M.成都:电子科技大学出版社,2000:58-121.2侯伯亨,顾新.VHDL硬件描述语言及数字逻辑电路设计M.西安:西安电子科技大出版社,2003:153-189.3甘登岱.EDA培训教程M.北京:机械工业出版社,2005 :241-312.4 Jayaram.Bhaker.VHDL教程M.北京:机械工业出版社,2006:96-175.5彭介华.电子技术课程设计指导M.北京:高等教育出版社,1997;134-198.6李国丽,朱维勇.电子技术试验指导书M.合肥:中国科技大学出版社,2000:201-259.7郑家龙,王小海,章安元.集成电子技术基础教程M.北京:高等教育出版社,2001:198-291.