38张方乐VHDL实训报告.doc_第1页
38张方乐VHDL实训报告.doc_第2页
38张方乐VHDL实训报告.doc_第3页
38张方乐VHDL实训报告.doc_第4页
38张方乐VHDL实训报告.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实训报告 目录一 实训名称 二 实训要求及目的 三 实训仪器以及设备 四 实训内容及步骤 五 实训结果及分析 11电子(2)班张方乐 实训名称:双向移位寄存器。实训要求及目的:1设计一个双向移位寄存器,理解移位寄存器的工作原理,掌握串入并出端口控制的描述方法。 2通过VHDL编程,实现双向移位寄存器,要求有一个方向控制端,一个时钟脉冲输入,一个异步清零端,一个数据输入端以及3位的并行数据输出端。 3通过点阵显示移位效果。 实训内容及步骤:一 程序设计:设计双向移位寄存器的VHDL程序。 二 程序编写:利用Quartus II编程软件,程序详见 附一。 三 程序写入开发板:把数据线和USB线接入电脑,打开开发板的电源,将程序写进开发板。 四 检验双向移位寄存器实验验证,利用开发板的点阵验证显示双向移位寄存器及程序的正确性,并与理论对比,如果实验结果与理论相同则程序正确。祥见附二实验分析。 五 实验完毕,关掉电源。 附一:library ieee;use ieee.std_logic_1164.all;entity shuangxiang isport(load:in std_logic; clk:in std_logic; left_right:in std_logic; d:in std_logic_vector(2 downto 0); q:buffer std_logic_vector(2 downto 0); aj:in std_logic_vector(1 downto 0); w:out std_logic_vector(7 downto 0);end shuangxiang;architecture one of shuangxiang issignal aa:std_logic_vector(2 downto 0);signal clkout:std_logic;signal counter:integer range 0 to 2;signal clkhz:std_logic;signal clkhx:std_logic;signal clkhc:std_logic;signal clkout1:std_logic;beginw=01111111;process(clk)variable clk1:integer range 0 to 2000;variable clk2:integer range 0 to 2000;beginif clkevent and clk=1 thenif clk1=2000 then clk1:=0;if clk2=2000 then clk2:=0;clkout=not clkout;elseclk2:=clk2+1;end if;elseclk1:=clk1+1;end if;end if;end process;process(clkout)variable clk1:integer range 0 to 1500;variable clk2:integer range 0 to 1500;beginif clkevent and clk=1 thenif clk1=1500 then clk1:=0;if clk2=1500 then clk2:=0;clkhz=not clkhz;elseclk2:=clk2+1;end if;elseclk1:=clk1+1;end if;end if;end process;process(clkhz)variable clk1:integer range 0 to 2000;variable clk2:integer range 0 to 2000;beginif clkevent and clk=1 thenif clk1=1000 then clk1:=0;if clk2=1000 then clk2:=0;clkhx=not clkhx;elseclk2:=clk2+1;end if;elseclk1:=clk1+1;end if;end if;end process;process(clkhx)variable clk1:integer range 0 to 3000;variable clk2:integer range 0 to 3000;beginif clkevent and clk=1 thenif clk1=3000 then clk1:=0;if clk2=3000 then clk2:=0;clkhc=not clkhc;elseclk2:=clk2+1;end if;elseclk1:=clk1+1;end if;end if;end process;process(clkout,clkhz,clkhx,clkhc,aj,clk)beginif aj=00 then clkout1=clkout;elsif aj=01 then clkout1=clkhz;elsif aj=10 then clkout1=clkhx;else clkout1=clkhc;end if;end process;process(clkout1,load,left_right,d)beginif load=1 then aa=d; q=d;elsif clkout1event and clkout1=1 thenif left_right=0thenaa(1 downto 0)=q(2 downto 1);aa(2)=q(0);elseaa(2 downto 1)=q(1 downto 0);aa(0)=q(2);end if;q=aa;end if;end process;end one; 附二:管脚接线/实物分析 aj1 Input Pin_38 yes aj0 Intput Pin_37 yes clk Input Pin_12 yes d2 Input Pin_30 yes d1 Input Pin_33 yes d0 Input Pin_34 yes life_right Input Pin_35 yes load Input Pin_36 yes q2 output Pin_83 yes q1 output Pin_84 yes q0 output Pin_85 yes w7 output Pin_73 yesw6 output Pin_74 yesw5 output Pin_75 yesw4 output Pin_76 yesw3 output Pin_77 yesw2 output Pin_78 yesw1 output Pin_81 yesw0 output Pin_82 yes 22仿真测试23在开发系统上进行硬件测试。 231硬件要求: 主芯片EPM240T100C5,2个开关,一个拨码开关,自动连续脉冲,3个LED灯。232原理图 实训结果及分析:当 load=1,life_right=1时,d1,d2,d3置上相应的数值,点阵显示对应的点,将load拨回0是点阵上亮起的点就会开始右循环;当 load=1,life_right=0时,d1,d2,d3置上相应的数值,点阵显示对应的点,将load拨回0是点阵上亮起的点就会开

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论