EDA课程设计.doc
串入/串出移位寄存器 专 业: 应用电子技术 班 级: 2010级(1)班 课程名称:串入/串出移位寄存器 学 号: 201030210121 _ 姓 名: 邹小丰 指导老师: 齐海兵 10 电气与电子信息工程学院 EDA技术实用教程 课程论文目 录摘 要.I1 引 言1.1课程设计的目的11.2 课程设计的内容12 EDA、VHDL简介2.1 EDA简介22.2 VHDL22.2.3 VHDL的设计流程33 移位寄存器设计过程3.1设计规划43.2 各模块工作原理及设计43.2.1移位寄存器的工作原理43.2.2串入并出(SIPO)移位寄存器的设计43.2.3 8位串入并出(SIPO)移位寄存器的设计54 系统仿真4.1 4位串入串出(SISO)移位寄存器仿真图分析74.2 8位串入串出(SISO)移位寄存器仿真图分析75 结 论5.1 对本设计有缺点的分析85.2结论与心得8参考文献9 电气与电子信息工程学院 EDA技术实用教程 课程论文摘 要 系统使用EDA技术设计了具有移位功能的寄存器,采用硬件描述语言VHDL进行设计,然后进行编程,时序仿真等。软件基于VHDL语言实现了本设计的控制功能。本设计根据移位寄存器的功能主要设计的是8位串入串出(SISO)移位寄存器。整个设计过程简单,使用方便。功能齐全,精度高,具有一定的开发价值。关键词:EDA;VHDL;移位寄存器 电气与电子信息工程学院 EDA技术实用教程 课程论文1 引言 随着社会的发展,科学技术也在不断的进步。特别是计算机产业,可以说是日新月异,移位寄存器作为计算机的一个重要部件,从先前的只能做简单的左移或右移功能的寄存器到现在广泛应用的具有寄存代码、实现数据的串行-并行转换、数据运算和数据处理功能的移位寄存器。移位寄存器正在向着功能强,体积小,重量轻等方向不断发展,本设计主要介绍的是一个基于超高速硬件描述语言VHDL对移位寄存器进行编程实现。近年来,集成电路和计算机应用得到了高速发展,现代电子设计技术已迈入一个崭新的阶段,具体表现在:(1)电子器件及其技术的发展将更多地趋向于为EDA服务;(2)硬件电路与软件设计过程已高度渗透;(3)电子设计技术将归结为更加标准、规范的EDA工具和硬件描述语言HDL的运用;(4)数字系统的芯片化实现手段已成主流。因此利用计算机和大规模复杂可编程逻辑器件进行现代电子系统设计已成为电子工程类技术人员必不可少的基本技能之一。1.1课程设计的目的在计算机中常要求寄存器有移位功能。如在进行乘法时,要求将部分积右移;在将并行传送的数转换成串行数时也需要移位。因此,移位寄存器的设计是必要的。本次设计的目的就是利用计算机组成原理中移位寄存器的相关知识,根据实验内容中介绍的4位串入/串出移位寄存器的设计方法,设计一个8位串入/串出移位寄存器。并且通过这次的课程设计要更加深入的了解移位寄存器的功能。了解EDA技术,并掌握VHDL硬件描述语言的设计方法和思想,通过学习的VHDL语言结合计算机组成原理中的相关知识理论联系实际,掌握所学的课程知识。通过对移位寄存器的设计,巩固和综合运用所学知识,提高对计算机组成原理的理解。1.2 课程设计的内容本课程设计是关于移位寄存器的设计,它不仅具有存储代码的功能,而且还有左移、右移、并行输入及保持等功能。在这里我们将通过一个4位串入/串出移位寄存器设计过程来介绍如何设计8位串入/串出移位寄存器。所谓的串入/串出移位寄存器,即输入的数据是一个接着一个依序地进入,输出时一个接着一个依序地送出。2 EDA、VHDL简介2.1 EDA简介EDA【1】是电子设计自动化(Electronic Design Automation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。EDA技术就是以计算机为工具,设计者在EDA软件【2】平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。EDA技术的出现,极大地提高了电路设计的效率和可*性,减轻了设计者的劳动强度。2.2 VHDL2.2.1 VHDL的简介 VHDL【3】 (Very-High-Speed Integrated Circuit HardwareDescription Language),翻译成中文就是超高速集成电路硬件描述语言。因此它的应用主要是应用在数字电路的设计中。诞生于1982年。自IEEE公布了VHDL的标准版本,IEEE-1076(简称87版)之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本,(简称93版)。现在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。有专家认为,在新的世纪中,VHDL于Verilog语言将承担起大部分的数字系统设计任务。2.2.2 VHDL语言的特点(1)与其他的硬件描述语言相比,VHDL【4】具有更强的行为描述能力,从而决定了他成为系统设计领域最佳的硬件描述语言。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统【5】的重要保证。(2)VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。(3)VHDL语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再利用功能。符合市场需求的大规模系统高效,高速的完成必须有多人甚至多个代发组共同并行工作才能实现。(4)对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动的把VHDL描述设计转变成门级网表。(5)VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计。2.2.3 VHDL的设计流程1.设计规范的定义明确设计的目的,进行设计的总体规划。分析设计要求,以及自己要达到的设计目的和目标。2. 采用VHDL进行设计描述这部分包括设计规划和程序的编写。设计规划主要包括设计方式的选择及是否进行模块划分。设计方式一般包括直接设计,自顶向下和自底向下设计。3. VHDL程序仿真对于某些人而言,仿真这一步似乎是可有可无的。但是对于一个可靠的设计而言,任何设计最好都进行仿真,以保证设计的可靠性。另外,对于作为一个独立的设计项目而言,仿真文件的提供足可以证明你设计的完整性。4. 综合、优化和布局布线综合指的是将设计描述转化成底层电路的表示形式,其结果是一个网表或者是一组逻辑方程;优化,这个主要是为了提高程序的执行效率及减少资源的利用;布局布线,指的是将逻辑关系转化成电路连接的方式。5仿真这一步主要是为了确定你的设计在经过布局布线之后,是不是还满足你的设计要求。3 移位寄存器设计过程3.1设计规划本设计是基于VHDL语言设计的移位寄存器,由于移位寄存器是计算机中非常重要的部件,所以本设计采用了不同的方法来实现寄存器的移位功能,具体设计的移位寄存器是8位串入串出(SISO)移位寄存器。由于涉及内容比较基础,所以设计比较简单。3.2 模块工作原理及设计3.2.1移位寄存器的工作原理用VHDL语言描述任意分频数的分频器,并实现占空比任意设置.每当系统时钟上升沿到来时,计数器就加计数一位(可任意设置为N位),当计数值到达预定值时就对分频时钟翻转.这样就会得到一个连续的时钟脉冲.当移位信号到来时,移位寄存器就对存储的二进制进行移位操作.移位寄存方式可自行设置(可左移,右移,一位移,多位移位寄存)。3.2.2串入串出移位寄存器的工作原理 图3.1 串入串出移位寄存器的工作原理图如图3.1 所示:串入 / 串出移位寄存器有数据输入端和同步时钟输入端,一个数据输出端。在同步时钟的作用下,前级的数据向后级移动。3.2.3 8位串入串出(SISO)移位寄存器的设计电路符号:4位串入串出(SISO)移位寄存器工作原理框图。如图3.2所示。 图3.2 4位串入串出(SISO)移位寄存器图元符号4位串入串出(SISO)移位寄存器由VHDL程序实现。下面是其中的部分代码:module siso(DATA_IN,CLK,DATA_OUT,VGA);input DATA_IN;input CLK;output DATA_OUT;output3:0VGA;reg 3:0Q;integer I;assign VGA = 4'b 0001;always (posedge CLK)beginQ0 <= DATA_IN;for(I=1;I<=3;I=I+1) QI <= QI - 1;endassign DATA_OUT = Q3;endmodule电路符号:8位串入串出(SISO)移位寄存器工作原理框图。如图3.3所示。 图3.2 8位串入串出(SISO)移位寄存器图元符号将4位串入串出(SISO)移位寄存器的VHDL程序进行修改后得到的8位串入串出(SISO)移位寄存器的源代码VHDL程序的部分程序如下:module siso(DATA_IN,CLK,DATA_OUT,VGA);input DATA_IN;input CLK;output DATA_OUT;output7:0VGA;reg 7:0Q;integer I;assign VGA = 8'b 0001;always (posedge CLK)begin Q0 <= DATA_IN;for(I=1;I<=7;I=I+1) QI <= QI - 1;endassign DATA_OUT = Q7;endmodule4 系统仿真4.1 4位串入串出(SISO)移位寄存器仿真图分析4位串入串出(SISO)移位寄存器的仿真图,如图4.1所示。图4.1 4串入串出(SISO)移位寄存器的仿真图因为一开始时寄存器内部存储的数据为“0000”,必须等这4个“0”逐一移出后,新的数据才能进入并存储,帮数据的输入和输出会存有4个位延迟时间的差异。DATA_IN表示输入的数据流,DATA_OUT为输出的数据流,Q显示的为寄存器目前存储的数据内容。4.2 8位串入串出(SISO)移位寄存器仿真图分析8位串入串出(SISO)移位寄存器的仿真图,如图4.2所示。图4.2 8串入串出(SISO)移位寄存器的仿真图对其仿真图进行仿真分析:clk为时钟控制信号,data_in为输入信号,表示要存入的数据。data_out为输出信号,表示输出的数据。如图4.2所示:当data_in串行输入数据时,遇到一个时钟信号clk,输入数据向右移位,并串行输出数据。第5章 结 论5.1对本设计优缺点的分析在做本次课程设计过程中,我感触最深的当属查阅大量的设计资料了。为了让自己的设计更加完善,查阅这方面的设计资料是十分必要的。在做设计之前,对所用寄存器的内部结构有一个系统的了解,知道寄存器的内有哪些资源,要有一个清晰的思路和一个完整的软件流程图,设计时要不断改进是程序设计的必经之路,在设计过程中应该将遇到的问题记录下来,分析清楚,以备下次注意。通过此次设计,了解到理论知识与实践相结合的重要意义,学会了坚持、耐心和努力。设计的过程中出现了不少问题,在大家伙的共同努力下,最终都得以解决,这锻炼我们发现问题,解决问题的能力,这次课程设计也在一定程度上锻炼了我的团队协作能力,我相信这对于我今后走上社会工作时一定会有所帮助。也感谢齐老师对我的指导。5.2结论与心得此次课程设计使我更加的了解EDA技术,虽然对quartus ii 9.0这个软件的使用有一定的了解,但是串入串出移位寄存器的课程设计对我来说还是有很大难度的,因为感觉一切都是陌生的,因此前期做了大量的准备,在图书馆也借了不少参考书籍,在做课程设计时,我按照老师的要求以及参考书的步骤进行,很快的掌握了一些串入串出移位寄存器的基本知识以及操作。从设计,到仿真调试,再到芯片下载运行,到最后测试成功,每一个步骤都存在很多难点,也遇到了很多问题,这就要求我们首先要有信心和足够的耐心,其次要有正确的学习心态、严谨的科学态度和认真的工作作风,最后我们得具有扎实的理论基础和一定的动手能力。要明白一点,不管看上去多么简单的东西,实际做起来可就没那么容易了,要避免少走弯路,一开始就要有认真对待的准备。 在此次课程设计的选题中我选取了一道我认为有把握,知识点可以掌握的题,这样做起来才能更好地将理论与实践相结合起来,从中学到更多的知识。这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中,可以说是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,在这次课程设计结束后,我一定把以前所学过的知识重新温故一遍。 通过此次的课程设计使我感受颇深,它一方面加强了我们的实际动手能力,让我们更充分地将书本的理论知识运用到实践中,更加加深了我们对知识的掌握。另一方面,让我对学习更有兴趣,更有信心,也让我明白:我们在平时的学习和生活中,只要我们善于发现,善于开动脑筋,契而不舍,坚持到底,没有什么困难使我们克服不了的。 正所谓人生就好比做学问一样,一个人如果连如何做学问都不知道,那也就更不用谈如何做人,更不用谈如何走好人生的每一步。 总的来说,做完之后我认为我们这次课程设计也不算太难,主要还是因为我们初次接触,很多地方都不懂,加上理论知识的不足,因此刚开始感觉很困难,在此我要感谢带我们的齐老师,是他的耐心讲解和细心指导,才使我能够顺利地完成课程设计,同时也要感谢班上各位同学们的热情帮助。 参考文献1潘松.EDA技术实用教程M.成都:科学出版社,2000:58-121. 2甘登岱.EDA培训教程M.北京:机械工业出版社,2005 :241-312.3侯伯亨,顾新.VHDL硬件描述语言及数字逻辑电路设计M.西安:西安电子科技大出版社,2003:153-189. 4 Jayaram.Bhaker.VHDL教程M.北京:机械工业出版社,2006:96-175. 5彭介华.电子技术课程设计指导M.北京高等教育出版社1997;134-198. EDA技术课程论文期末成绩评定表姓 名学 号专业班级论文题目:课程论文答辩记录:评语报告期末成绩(百分制) 指导教师签字: