您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > 带清零的8位并行输入串行输出移位寄存器
1四川大学锦江学院EDA实验学号:080611044班级:08电工1班姓名:杨洁2摘要EDA作为电子工程领域的一个新领域,极大的提高了电子系统设计的效率和可靠性,本次设计是利用VHDL语言仿真设计具有八位并行输入串行输出功能的寄存器。关键词:EDA,VHDL,并行输入串行输出目录(一)选题…………………………………………………(3)(二)芯片设计要求………………………………………….(3).(三)引脚定义………………………………………………(3)(四)VHDL源程序设计过程…………………………………(3)(五)设计的调试过程…………………………………………(5)(六)心得体会…………………………………………………(6)(七)参考资料…………………………………………………(6)(八)附录………………………………………………………(7)3(一)选题:带清零的8位并行输入串行输出移位寄存器并行与串行通信各有特点,并行速度相对较快,但成本较串行高,在一个系统中有些模块对速度要求高,相对而言有的对速度并没有过高的期望。所以在一个系统可以进行串并或并串变换。在此仅以八位并串变换为例(二)芯片设计要求引脚:八个并行输入端口一个输出端口时钟信号控制引脚时钟信号禁止端移位装载控制复位功能:数据并行的输入,串行的输出实现所谓的并串变化(三)引脚定义输入引脚:a,b,c,d,e,f,g,h8位并行输入信号se串行输入信号输出引脚:q串行输出信号控制引脚:clk时钟信号fe时钟信号禁止端s1移位装载控制端reset复位信号控制信号功能表CLKresetfeS1q↑上升沿有效0复位--0000000011-0000000000依次装载1移位装载(四)VHDL源程序设计过程包括三个部分,即库和程序包调用、实体部分、结构体部分程序包调用:LIBRARYieee;4useieee.std_logic_1164.all;实体部分一般格式:entity实体名is类型参数说明端口说明end实体名注意:实体名与保存的源文件名相同结构体部分一般格式:Architecture结构体名of实体名is定义语句Begin并行处理语句End结构体名(五)设计的调试过程1.创建工程准备工作新建一个文件夹(文件名不要用汉字)输入源程序代码(保存为”实体名.vhd”)文件存盘2.创建工程打开源程序;设置为当前工程File-Project-SetProjecttoCurrentFile3.编译前设置选择FPGA芯片Assign-Device54.全部编译MAX+plus2-Compiler直到无错误为止5.引脚锁定选择MAX+plus2-FloorplanEditor打开底层编辑器;运行Layout-LastCompilationFloorplan,即可显示上次编译所得引脚分配情况。Layout-CurrentCompilationFloorplan,可以在UnassignedNodes&Pin栏中手动设置各引脚。.6.波形仿真MAX+plus2-WaveformEditorNode-EnterNodesfromSNFEndtime=100usGridsize=10ns设定并行输入值控制引脚并保存7.MAX+plus2-Simulator仿真图8.创建器件File-CreateDefaultSymbol6(六)心得体会对于这次实验由于以前做做关于VHDL语言实验,所以有软件的使用上还算好,但做起来还是有一些小问题,看似很简单的一个设计,动手做起来却有很多问题需要注意,最后查阅一些资料才解决。在做实验之前,一定要先理清思路,明确实验要求,查阅相关的实验原理。最后确定实验方案。不能放过任何一个小细节。在实验过程中,学会了对自己的实验进展、实验方法做自我监控,自我反馈和自我调节。在实验的最后,学会了对实验结果进行自我检测,自我总结和自我评价与补救。通过这次实验知道了再简单的东西都要自己亲身力行才能有收获。平时要多动手,勤思考,才能有进步。不懂没有关系,万事开头难,我们可以和同学讨论,上网搜索资料等等方式(七)参考资料【1】赵刚《EDA技术简明教程》四川大学出版社【2】杨颂华冯毛官数字电子技术基础》西安电子科技大学出版社【3】《计算机虚拟实验讲义》电工电子基础实验中心二00九年九月7(八)附录:LIBRARYieee;useieee.std_logic_1164.all;entityregisport(reset,s1,fe,clk,se,a,b,c,d,e,f,g,h:instd_logic;q:outstd_logic);endreg;architecturebehaveofregissignaltmpreg8:std_logic_vector(7downto0);beginprocess(clk,reset,s1,fe)beginif(reset='0')thentmpreg8=00000000;q=tmpreg8(7);elsif(clk'event)and(clk='1')thenif(fe='0')thenif(s1='0')thentmpreg8(0)=a;tmpreg8(1)=b;tmpreg8(2)=c;8tmpreg8(3)=d;tmpreg8(4)=e;tmpreg8(5)=f;tmpreg8(6)=g;tmpreg8(7)=h;elsif(s1='1')thenforiintmpreg8'highdowntotmpreg8'low+1looptmpreg8(i)=tmpreg8(i-1);endloop;tmpreg8(tmpreg8'low)=se;q=tmpreg8(7);endif;endif;endif;endprocess;endbehave;9
本文标题:带清零的8位并行输入串行输出移位寄存器
链接地址:https://www.777doc.com/doc-4947764 .html