- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
38张方乐VHL实训报告
实训报告
目录
一 实训名称
二 实训要求及目的
三 实训仪器以及设备
四 实训内容及步骤
五 实训结果及分析
11电子(2)班
张方乐
实训名称:双向移位寄存器。
实训要求及目的:1设计一个双向移位寄存器,理解移位寄存器的工作原理,掌握串入\并出端口控制的描述方法。
2通过VHDL编程,实现双向移位寄存器,要求有一个方向控制端,一个时钟脉冲输入,一个异步清零端,一个数据输入端以及3位的并行数据输出端。
3通过点阵显示移位效果。
实训内容及步骤:一 程序设计:设计双向移位寄存器的VHDL程序。
二 程序编写:利用Quartus II编程软件,程序详见 附一。
三 程序写入开发板:把数据线和USB线接入电脑,打开开发板的电源,将程序写进开发板。
四 检验双向移位寄存器实验验证,利用开发板的点阵验证显示双向移位寄存器及程序的正确性,并与理论对比,如果实验结果与理论相同则程序正确。祥见附二实验分析。
五 实验完毕,关掉电源。
附一:library ieee;
use ieee.std_logic_1164.all;
entity shuangxiang is
port(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 is
signal 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;
begin
w
process(clk)
variable clk1:integer range 0 to 2000;
variable clk2:integer range 0 to 2000;
begin
if clkevent and clk=1 then
if clk1=2000 then
clk1:=0;
if clk2=2000 then
clk2:=0;
clkout=not clkout;
else
clk2:=clk2+1;
end if;
else
clk1:=clk1+1;
end if;
end if;
end process;
process(clkout)
variable clk1:integer range 0 to 1500;
variable clk2:integer range 0 to 1500;
begin
if clkevent and clk=1 then
if clk1=1500 then
clk1:=0;
if clk2=1500 then
clk2:=0;
clkhz=not clkhz;
else
clk2:=clk2+1;
end if;
else
clk1:=clk1+1;
end if;
end if;
end process;
process(clkhz)
variable clk1:integer range 0 to 2000;
variable clk2:integer range 0 to 2000;
begin
if clkevent and clk=1 then
if clk1=1000 then
clk1:=0;
if clk2=1000 then
clk2:=0;
clkhx
原创力文档


文档评论(0)