数电实验三基于Quartus的硬件描述语言电路设计_第1页
数电实验三基于Quartus的硬件描述语言电路设计_第2页
数电实验三基于Quartus的硬件描述语言电路设计_第3页
数电实验三基于Quartus的硬件描述语言电路设计_第4页
数电实验三基于Quartus的硬件描述语言电路设计_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

1、数电实验三 基于Quartus的硬件描述语言电路设计一 实验目的(1) 了解QuartusII的硬件描述语言电路。(2) 能用VHDl语言设计电路。二 实验设备实验电路开发板DEO,Quartus仿真软件。三 实验要求要求1:并用硬件描述语言实现异或门电路的设计。1)用QuartusII 波形仿真验证;2)下载到DE0 开发板验证。 要求2:,编写一个将二进制码转换成0-F 的七段码译码器。1)用QuartusII 波形仿真验证;2)下载到DE0 开发板验证。要求3:编写一个十六进制计数器。1)用QuartusII 波形仿真验证;2)下载到DE0 开发板验证。要求4:编写一个能实现占空比50%

2、的5M 和50M 分频器即两个输出,输出信号频率分别为10Hz 和1Hz。1)下载到DE0 开发板验证。扩展内容:利用已经实现的VHDL模块文件,采用原理图方法,实现0-F计数自动循环显示,频率10Hz。四 实验内容1, 异或门波形仿真为:2, 0-F 的七段码译码器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY exa3_2 ISPORT (data_in:IN STD_LOGIC_VECTOR(3 DOWNTO 0);dis_out:OUT STE_LOGIC_VECTOR(6 DOWNTO 0);END exa3_2;ARCHITECTUR

3、E fwm OF exa3_2 ISBEGINPROCESS(data_in)BEGINCASE data_in ISWHEN”0000”=>dis_out<=”1000000”;-显示 0WHEN”0001”=>dis_out<=”1111001”;-显示 1WHEN”0010”=>dis_out<=”0100100”;-显示 2WHEN”0011”=>dis_out<=”0110000”;-显示 3WHEN”0100”=>dis_out<=”0011001”;-显示 4WHEN”0101”=>dis_out<=”001

4、0010”;-显示 5WHEN”0110”=>dis_out<=”0000010”;-显示 6WHEN”0111”=>dis_out<=”1111000”;-显示 7WHEN”1000”=>dis_out<=”0000000”;-显示 8WHEN”1001”=>dis_out<=”0010000”;-显示 9WHEN”1010”=>dis_out<=”0001000”;-显示 AWHEN”1011”=>dis_out<=”0000000”;-显示 BWHEN”1100”=>dis_out<=”1000110”;

5、-显示 CWHEN”1101”=>dis_out<=”1000000”;-显示 DWHEN”1110”=>dis_out<=”0000110”;-显示 EWHEN”1111”=>dis_out<=”0001110”;-显示 FWHEN OTHERS=> dis_out<=”1111111”;-灭灯,不显示END CASE;END PROCESS;END fwm;说明: 七段码译码器由7个线段状的LED组成,1表示熄灭,0表示点亮,利用不同位置的LED熄灭和点亮组成0F字符显示;将每一个四位二进制码对应一个相应的七段码输出;波形仿真如下:3, 十六

6、进制计数器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY exa3_3 ISPORT ( clk,RST : IN STD_LOGIC;DOUT : OUT STD_LOGIC_VECTOR (3 DOWNTO 0); -四位计数COUT : OUT STD_LOGIC); -进位位END exa3_3;ARCHITECTURE fwm OF exa3_3 ISSIGNAL Q1 : STD_LOGIC_VECTOR (3 DOWNTO 0);BEGINPROCESS(clk,RST

7、)BEGINIF RST = '0' THEN Q1<=(OTHERS => '0'); COUT<= '0'ELSIF clk'EVENT AND clk='1' THENQ1<=Q1+1;COUT<= '0'IF Q1 >= "1111" THEN Q1<=(OTHERS => '0'); COUT<= '1'END IF;END IF;END PROCESS;DOUT<=Q1 ;END fw

8、m;说明: Count为进位输出; Rst为清零信号,为0时清零;每计数到1111时,输出count=1,Q=0000;波形仿真:4, 分频器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY exa3_4 ISPORT(clk:IN STD_LOGIC;A,B:IN STD_LOGIC;clk_out1:OUT STD_LOGIC;clk_out2:OUT STD_LOGIC);END exa3_4;ARCHITECTURE fwm OF exa3_4 ISCONSTANT m : INTEGER:= 25000000; -50M 分频到 1Hz

9、时=25000000。CONSTANT n : INTEGER:= 2500000; -5M 分频到 10Hz 时=2500000SIGNAL tmp :STD_LOGIC;SIGNAL tmp1 :STD_LOGIC;BEGIN-分频器输出50MPROCESS(clk, tmp)VARIABLE cout : INTEGER:=0;BEGINIF A='1' THEN IF clk'EVENT AND clk='1' THENcout:=cout+1; -计数器+1IF cout<=m THEN tmp<='0' -计数小于

10、等于 25000000,输出 0ELSIF cout<m*2 THEN tmp<='1' -计数小于 50000000,输出 1ELSE cout:=0; -计数器清零END IF;END IF;clk_out1<=tmp;END IF;END PROCESS;-分频器输出5MPROCESS(clk, tmp1)VARIABLE cout : INTEGER:=0;BEGINIF B='1' THENIF clk'EVENT AND clk='1' THENcout:=cout+1; -计数器+1IF cout<=n THEN tmp1<='0' -计数小于等于 2500000,输出 0ELSIF cout<n*2 THEN tmp1<='1' -计数小于 5000000,输出 1ELSE cout:=0; -计数器清零END IF;END IF;clk_out2<=tmp1; END IF;END PROCESS;END fwm;说明: A,B为两个开关,当A=1时,clk_out1:10HZ输出,当B=1时,clk_out2:1HZ输出; 5, 扩展要求说明:信号clk先经过分频器exa3_4。 A、B分别为10HZ、1HZ输出开关。分

温馨提示

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

评论

0/150

提交评论