欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载  

    基于VHDL移位寄存器的设计与实现.EDA课程设计.doc

    • 资源ID:11083044       资源大小:118.50KB        全文页数:11页
    • 资源格式: DOC        下载积分:4
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要4
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    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.

    注意事项

    本文(基于VHDL移位寄存器的设计与实现.EDA课程设计.doc)为本站会员(啊飒飒)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开