基于VHDL移位寄存器的设计与实现EDA课程设计.docx
- 文档编号:23474148
- 上传时间:2023-05-17
- 格式:DOCX
- 页数:10
- 大小:59.65KB
基于VHDL移位寄存器的设计与实现EDA课程设计.docx
《基于VHDL移位寄存器的设计与实现EDA课程设计.docx》由会员分享,可在线阅读,更多相关《基于VHDL移位寄存器的设计与实现EDA课程设计.docx(10页珍藏版)》请在冰豆网上搜索。
基于VHDL移位寄存器的设计与实现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所示。
图3.1双向移位寄存器原理框图
双向移位寄存器由VHDL程序实现,下面是其中的一段VHDL代码:
libraryieee;
useieee.std_logic_1164.all;--IEEE库使用声明
useieee.std_logic_arith.all;
useieee.std_logic_unsigned.all;
entitytdirregis
port(clk:
instd_logic;--声明clk是标准逻辑位类型的输入端口
din:
instd_logic;--声明din是标准逻辑位类型的输入端口
dir:
instd_logic;--声明dir是标准逻辑位类型的输入端口
op_l:
outstd_logic;--声明op_l是标准逻辑位类型的输出端口
op_r:
outstd_logic);--声明op_r是标准逻辑位类型的输出端口
endtdirreg;
architectureaoftdirregis
signalq:
std_logic_vector(7downto0);--信号声明语句
begin
process(clk)--进程语句(clk是敏感信号)
begin
ifclk'eventandclk='1'then--条件语句
ifdir='0'then
q(0)<=din;--赋值语句
foriin1to7loop
q(i)<=q(i-1);--赋值语句
endloop;
else
q(7)<=din;--赋值语句
foriin7downto1loop
q(i-1)<=q(i);--赋值语句
endloop;
endif;
endif;
endprocess;
op_l<=q(7);--赋值语句
op_r<=q(0);--赋值语句
enda;
3.2.3串入串出(SISO)移位寄存器的设计
电路符号:
串入串出(SISO)移位寄存器工作原理框图。
DATA_IN为数据输入端口,数据将从这个端口进入寄存器;DATA-OUT为数据输出端口,数据将从这个端口从寄存器输出;CLK是清零端口。
如图3.2所示。
图3.2串入串出(SISO)移位寄存器图元符号
串入串出(SISO)移位寄存器由VHDL程序实现。
下面是其中的部分代码:
libraryieee;
useieee.std_logic_1164.all;--IEEE库使用声明
entitysisois
port(data_in:
instd_logic;--声明data是标准逻辑位类型的输入端口
clk:
instd_logic;--声明clk是标准逻辑位类型的输入端口
data_out:
outstd_logic);--声明data是标准逻辑位类型的输出端口
endsiso;
architectureaofsisois
signalq:
std_logic_vector(3downto0);--信号声明语句
begin
process(clk)--进程语句(clk是敏感信号)
begin
ifclk'eventandclk='1'then--条件语句
q(0)<=data_in;
foriin1to3loop
q(i)<=q(i-1);--赋值语句
endloop;
endif;
endprocess;
data_out<=q(3);--赋值语句
enda;
3.2.3串入并出(SIPO)移位寄存器的设计
电路符号:
串入并出(SIPO)移位寄存器工作原理框图。
D_IN是数据输入端口,数据将从这个端口进入串入并出(SIPO)移位寄存器;D_OUT[3…0]为数据输出端口,数据将从这个端口从串入并出(SIPO)移位寄存器出来。
如图3.3所示。
图3.3串入并出(SIPO)移位寄存器工作框图
串入并出(SIPO)移位寄存器由VHDL程序实现。
下面是其中的部分代码:
libraryieee;--IEEE库使用声明
useieee.std_logic_1164.all;
useieee.std_logic_arith.all;
useieee.std_logic_unsigned.all;
entitysipois
port(d_in:
instd_logic;--声明d是标准逻辑位类型的输入端口
clk:
instd_logic;--声明clk是标准逻辑位类型的输入端口
d_out:
outstd_logic_vector(3downto0));--声明d是标准逻辑位类型的输出端口
endsipo;
architectureaofsipois
signalq:
std_logic_vector(3downto0);--信号声明语句
begin
process(clk)--进程语句(clk是敏感信号)
begin
ifclk'eventandclk='1'then--条件语句
q(0)<=d_in;
foriin1to3loop
q(i)<=q(i-1);--赋值语句
endloop;
endif;
endprocess;
d_out<=q;--赋值语句
enda;
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.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 VHDL 移位寄存器 设计 实现 EDA 课程设计