ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:57.42KB ,
资源ID:11605424      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-11605424.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数字系统设计技术实验指导书.docx)为本站会员(b****3)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

数字系统设计技术实验指导书.docx

1、数字系统设计技术实验指导书Experiment 2 Designing Number Comparer实验目的: 熟悉QuartusII的开发环境 熟练掌握编程开发流程学习VHDL的基本语法学习VHDL编程设计实验内容:数值比较器设计实验要求:熟练掌握QuartusII开发环境下对可编程逻辑器件进行程序化设计的整套流程设计输入使用插入模板 (Insert Template)在QuartusII开发环境下对设计程序进行时序仿真将生成的配置文件下载到实验板,进行最终的实物测试验证实验原理:根据两位二进制数的大小得到对应的比较结果,其电路示意图及电路特性表为:比较器特性表A B In_s In_l

2、In_e A B 0 0 1A B 1 0 0A = B 0 1 00 0 1A = B 1 0 01 0 0A = B 0 0 10 1 0A = B 0 0 0 A = B 1 1 A = B 1 1 A = B 1 1 比较器电路示意图 实验报告内容要求:(1)实验目的;(2)实验内容;(3)实验要求;(4)实验原理;(5)程序编写;(6)Y程序编译(首先选择器件具体型号);(7)功能仿真和芯片时序仿真;(8)芯片引脚设定;(9)适配下载结果及结论。Experiment 3 Designing 8 to1-Multiplxer实验目的: 熟悉QuartusII的开发环境熟练掌握编程开发流

3、程学习VHDL的基本语法学习VHDL编程设计实验内容:八选一数据选择器设计。实验要求:熟练掌握QuartusII开发环境下对可编程逻辑器件进行程序化设计的整套流程设计输入使用插入模板 (Insert Template)在QuartusII开发环境下对设计程序进行时序仿真将生成的配置文件下载到实验板,进行最终的实物测试验证实验原理:电路功能表及其电路外部符号如下:电路功能表 Sb A2 A1 A0Y1 0 0 0 0D00 0 0 1D10 0 1 0D20 0 1 1D30 1 0 0D40 1 0 1D50 1 1 0D60 1 1 1D7实验报告内容要求:(1)实验目的;(2)实验内容;(

4、3)实验要求;(4)实验原理;(5)程序编写;(6)程序编译(首先选择器件具体型号);(7)功能仿真和芯片时序仿真;(8)芯片引脚设定;(9)适配下载结果及结论。Experiment 4 Designing module _60实验目的: 熟悉QuartusII的开发环境熟练掌握编程开发流程学习数字系统中层次化设计技巧学习显示译码电路 分频电路、计数电路的VHDL程序设计学习结构化设计的VHDL程序设计实验内容:基于数码管显示的60进制计数器设计实验要求:熟练掌握QuartusII开发环境下对可编程逻辑器件进行程序化设计的整套流程将50MHz信号分频为1Hz信号以1Hz为60进制计数器使能信号

5、,实现60进制计数功能计数结果用两位数码管显示计数进位持续时间1s用LED显示设计位同步时序电路在QuartusII开发环境下对设计程序进行时序仿真将生成的配置文件下载到实验板,进行最终的实物测试验证实验原理:先对50MHz时钟信号分频得到1Hz,然后调用两个10进制计数器,计数到59时回到初始0的计数状态,每个10进制计数的技术结果通过显示译码送到两位数码管上显示,结构框图如下:数码管数码管50MHz实验报告内容要求:(1)实验目的;(2)实验内容; (3)实验要求;(4)实验原理;(5)程序编写;(6)程序编译(首先选择器件具体型号);(7)功能仿真和芯片时序仿真;(8)结论。Experi

6、ment 5 Designing shift_register实验目的: 熟悉QuartusII的开发环境熟练掌握编程开发流程学习VHDL的基本语法学习数字系统中移位寄存器设计及其VHDL编程实验内容:移位寄存器设计实验要求:熟练掌握QuartusII开发环境下对可编程逻辑器件进行程序化设计的整套流程设计输入使用插入模板 (Insert Template)在QuartusII开发环境下对设计程序进行时序仿真将生成的配置文件下载到实验板,进行最终的实物测试验证实验原理:根据两位二进制数的大小得到对应的比较结果,其电路示意图及电路特性表为:比较器特性表clr Clk load ctr 0 复位1

7、0 置数1 1 0右移1 1 1左移Data_in(3.0) clkclr load ctr 比较器电路示意图 实验报告内容要求:(9)实验目的;(10)实验内容;(11)实验要求;(12)实验原理;(13)程序编写;(14)程序编译(首先选择器件具体型号);(15)功能仿真和芯片时序仿真;(16)芯片引脚设定;(17)适配下载结果及结论。实验2考程序Library ieee;Use ieee.std_logic_1164.all;Entity compare_2 isPort( data_a,data_b: in std_logic_vector(3 downto 0); In_s,In_l

8、,In_e: in std_logic; Ys,Yl,Ye:out std_logic);End compare_2;Architecture rtl of compare_2 isSignal tmps,tmpe: std_logic;Begin Ys=tmps;Ye = tmpe; Yl = tmps nor tmpe;Aa:process(data_a,data_b, In_e) Begin If(data_a = data_b and In_e = 1) then tmpe=1; else tmpe=0; End if;End process aa;bb:process(data_a,

9、data_b, In_s) Begin If(data_adata_b) then tmps=1; elsif(data_a=data_b and In_s=1) then tmps=1; Else tmps y y y y y y y y y=X;end case;elsey=0;end if; END PROCESS;END rtl;实体(entity)名称与文件名称一致;时序仿真时,波形编辑后先保存波形文件再进行时序仿真;分配管脚后,需要重现编译,然后才能下载。设计流程:新建项目新建源文件输入语言编译仿真分配管脚编译下载仿真流程:新建波形文件导入管脚信号并编辑输入信号仿真下载的时候选择硬

10、件为:BytebBlasterLPT1实验4参考程序library ieee;use ieee.std_logic_1164.all;entity count_60 isport(clk,rst:in std_logic; count_data10,count_data1: out std_logic_vector(6 downto 0); en_out :out std_logic);end count_60;architecture rtl of count_60 iscomponent sec_out port(clk,rst:in std_logic; en_out :out std_

11、logic );end component;component count_10 port(clk,rst,en_in,ld:in std_logic; data_in:in std_logic_vector(3 downto 0); data_out:out std_logic_vector(3 downto 0); en_out :out std_logic );end component;component dis_decode port(data_in:in std_logic_vector(3 downto 0); dis_num :out std_logic_vector(6 do

12、wnto 0) );end component;signal cont_tmp10,cont_tmp1,data_in:std_logic_vector(3 downto 0);signal ld,sec_en,sec_en10,min_out:std_logic;beginld=sec_en10 and cont_tmp10(2) and cont_tmp10(0);data_in=0000;en_out=cont_tmp10(2) and cont_tmp10(0) and cont_tmp1(3) and cont_tmp1(0);U0:sec_out port map(clk,rst,

13、sec_en);U1:count_10 port map(clk,rst,sec_en,ld,data_in,cont_tmp1,sec_en10);U2:count_10 port map(clk,rst,sec_en10,ld,data_in,cont_tmp10,min_out);U3:dis_decode port map(cont_tmp1,count_data1);U4:dis_decode port map(cont_tmp10,count_data10);end rtl;library ieee;use ieee.std_logic_1164.all;use ieee.std_

14、logic_unsigned.all;use ieee.std_logic_arith.all;entity count_10 isport(clk,rst,en_in,ld:in std_logic; data_in:in std_logic_vector(3 downto 0); data_out:out std_logic_vector(3 downto 0); en_out :out std_logic);end count_10;architecture rtl of count_10 issignal cont_tmp:std_logic_vector(3 downto 0);be

15、gin en_out=en_in and cont_tmp(3) and cont_tmp(0); data_out=cont_tmp;process(clk,rst)begin if(rst=0)then cont_tmp=0000; elsif(clkevent and clk=1)then if(ld=1)then cont_tmp=data_in; elsif(en_in=1)then if(cont_tmp=1001)then cont_tmp=0000; else cont_tmp=cont_tmp+1; end if; end if; end if;end process;end

16、 rtl;library ieee;use ieee.std_logic_1164.all;entity dis_decode isport(data_in:in std_logic_vector(3 downto 0); dis_num :out std_logic_vector(6 downto 0);end dis_decode;architecture rtl of dis_decode isbegin with data_in select dis_num=0111111 WHEN 0000, 0000110 WHEN 0001, 1011011 WHEN 0010, 1001111

17、 WHEN 0011, 1100110 WHEN 0100, 1101101 WHEN 0101, 1111101 WHEN 0110, 0000111 WHEN 0111, 1111111 WHEN 1000, 1100111 WHEN 1001, 0000000 WHEN others;end rtl;library ieee;use ieee.std_logic_1164.all;entity sec_out isport(clk,rst:in std_logic; en_out :out std_logic);end sec_out;architecture rtl of sec_ou

18、t iscomponent divide_5 port(clk,rst,en_in:in std_logic; en_out :out std_logic );end component;component divide_10 port(clk,rst,en_in:in std_logic; en_out :out std_logic );end component;signal en0,en1,en2,en3,en4,en5,en6:std_logic;begin U0:divide_5 port map(clk,rst,1,en0);U1:divide_10 port map(clk,rs

19、t,en0,en1);U2:divide_10 port map(clk,rst,en1,en2);U3:divide_10 port map(clk,rst,en2,en3);U4:divide_10 port map(clk,rst,en3,en4);U5:divide_10 port map(clk,rst,en4,en5);U6:divide_10 port map(clk,rst,en5,en6);U7:divide_10 port map(clk,rst,en6,en_out);end rtl;library ieee;use ieee.std_logic_1164.all;use

20、 ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity divide_5 isport(clk,rst,en_in:in std_logic; en_out :out std_logic);end divide_5;architecture rtl of divide_5 issignal cont_tmp:std_logic_vector(2 downto 0);begin en_out=en_in and cont_tmp(2);process(clk,rst)begin if(rst=0)then cont_tmp

21、=000; elsif(clkevent and clk=1)then if(en_in=1)then if(cont_tmp=100)then cont_tmp=000; else cont_tmp=cont_tmp+1; end if; end if; end if;end process;end rtl;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity divide_10 isport(clk,rst,en_in:in s

22、td_logic; en_out :out std_logic);end divide_10;architecture rtl of divide_10 issignal cont_tmp:std_logic_vector(3 downto 0);begin en_out=en_in and cont_tmp(3) and cont_tmp(0);process(clk,rst)begin if(rst=0)then cont_tmp=0000; elsif(clkevent and clk=1)then if(en_in=1)then if(cont_tmp=1001)then cont_t

23、mp=0000; else cont_tmp=cont_tmp+1; end if; end if; end if;end process;end rtl;实验5参考程序library ieee; use ieee.std_logic_1164.all; ENTITY shift IS PORT(clr,clk,load,shift_en,ctr,sr,sl : IN STD_LOGIC; data_in : IN STD_LOGIC_VECTOR(7 downto 0); data_q : OUT STD_LOGIC_VECTOR(7 downto 0);END shift;ARCHITEC

24、TURE arc OF shift IS SIGNAL data_tmp : STD_LOGIC_VECTOR(7 downto 0);Signal en_tmp1, en_tmp2, en_tmp: std_logic;BEGIN PROCESS(clr,clk) BEGIN IF (clr=0) THEN en_tmp1 =0; else en_tmp1 =shift_en; end if;end process;PROCESS(clr,clk) BEGIN IF (clr=0) THEN en_tmp2 =0; else en_tmp2= en_tmp1; end if;end proc

25、ess; en_tmp= (not en_tmp1) and en_tmp2;data_q= data_tmp; PROCESS(clr,clk) BEGIN IF (clr=0) THEN data_tmp =00000000; ELSIF (clkEVENT AND clk=1) THEN IF load=0 THEN data_tmp = data_in; ELSIF (en_tmp =1 AND ctr=0) THEN data_tmp =sr & data_tmp (7 downto 1); ELSIF (en_tmp =1 AND ctr=1) THEN data_tmp = data_tmp (6 downto 0) & sl; END IF; END IF; END PROCESS;END arc;

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2