实验三VHDL
- 格式:ppt
- 大小:779.00 KB
- 文档页数:37


实验三 VHDL 时序逻辑电路设计一、实验目的1.熟悉用VHDL语言设计时序逻辑电路的方法2.熟悉用Quartus文本输入法进行电路设计二、实验所用仪器元件及用途1.计算机:装有Quartus软件,为VHDL语言提供操作场所。
2.直流稳压电源:通过USB接口实现,为实验开发板提供稳定电源。
3.数字系统与逻辑设计实验开发板:使试验结果下载到开发板上,实现整个实验的最终结果。
三、实验内容1.用VHDL语言设计实现一个8421码十进制计数器。
(1)实验内容及要求:在Quartus平台上设计程序和仿真题目要求,并下载到实验板上验证试验结果。
(2)试验结果:VHDL代码和仿真结果。
2.用VHDL语言设计实现一个分频系数为8,分频输出信号占空比为50%的分频器。
(1)实验内容及要求:在Quartus平台上设计程序和仿真题目要求。
(2)试验结果:VHDL代码和仿真结果。
3.用VHDL语言设计实现一个控制8个发光二极管亮灭的电路。
(1)实验内容及要求:在Quartus平台上设计程序和仿真题目要求,并下载到实验板上验证试验结果。
a.单点移动模式:一个点在8个发光二极管上来回的亮b.幕布式:从中间两个点,同时向两边依次点亮直至全亮,然后再向中间点灭,依次往复c.通过拨码开关或按键控制两种模式的转换(2)试验结果:VHDL代码和仿真结果。
四、实验设计思路及过程1.8421码十进制计数器状态转移表左图为8421码十进制计数器的状态转移表,abcd为初状态,ABCD为下一状态,每当有“1”出现时,相应的管脚就亮灯,从而从0000到1001的灯依次出现。
VHDL代码如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY count12 ISPORT(clk,clear:IN STD_LOGIC;q :OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END count12;ARCHITECTURE a OF count12 ISSIGNAL q_temp:ATD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(clk)BEGINIF(clk'event and clk='1') THENIF clear='0' THENq_temp<="0000";ELSIF q_temp="1011"THENq_temp<="0000";ELSEq_temp<=q_temp+1;END IF;END IF;END PROCESS;q<=q_temp;END a;2.分频系数为8,输出占空比为50%的分频器的设计左图为八分频器(占空比50%)的状态转移图,其中abc为原状态,ABC为下一状态。
vhdl实验报告--蜂鸣器VHDL 实验报告蜂鸣器一、实验目的本次实验的主要目的是通过使用 VHDL 语言来设计并实现一个蜂鸣器的控制电路,深入理解数字电路的设计原理和 VHDL 编程的基本方法,掌握硬件描述语言在实际电路设计中的应用,提高自己的逻辑思维和问题解决能力。
二、实验原理蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电。
常见的蜂鸣器分为有源蜂鸣器和无源蜂鸣器两种。
有源蜂鸣器内部自带了振荡源,只要给其供电就能发出固定频率的声音;无源蜂鸣器则需要外部提供一定频率的脉冲信号才能发声。
在本实验中,我们使用 VHDL 语言来控制一个无源蜂鸣器。
通过编写代码,生成特定频率的脉冲信号,从而驱动蜂鸣器发声。
三、实验设备及工具1、计算机2、 Quartus II 软件3、开发板四、实验内容及步骤1、设计思路首先,需要确定蜂鸣器发声的频率。
通过计算得出所需的时钟周期数。
然后,使用计数器来产生特定频率的脉冲信号。
最后,将脉冲信号输出到蜂鸣器的控制引脚。
2、 VHDL 代码编写```vhdllibrary ieee;use ieeestd_logic_1164all;use ieeenumeric_stdall;entity buzzer_control isport(clk : in std_logic;rst : in std_logic;buzzer : out std_logic);end entity;architecture Behavioral of buzzer_control isconstant CLK_FREQ : integer := 50_000_000; 系统时钟频率constant BUZZER_FREQ : integer := 1000; 蜂鸣器发声频率signal counter : integer range 0 to CLK_FREQ/BUZZER_FREQ 1; signal clk_div : std_logic;beginprocess(clk, rst)beginif rst ='1' thencounter <= 0;clk_div <='0';elsif rising_edge(clk) thenif counter = CLK_FREQ/BUZZER_FREQ 1 thencounter <= 0;clk_div <= not clk_div;elsecounter <= counter + 1;end if;end if;end process;buzzer <= clk_div;end architecture;```3、编译与仿真将编写好的 VHDL 代码在 Quartus II 软件中进行编译。
学生实验报告实验课名称:VHDL硬件描述语言实验项目名称:触发器专业名称:电子科学与技术班级:32050801学号:3205080134学生姓名:黄红涛教师姓名:程鸿亮_2010__年__11__月__6__日组别_____________________ 同组同学_ 刘增辉实验日期:2011 年11 月6 日实验室名称______ 成绩_____一、实验名称:触发器二、实验目的与要求:设计RS、JK、D、T四种触发器,掌握异步复位置位的方法以及四种触发功能的实现方法,掌握QuartusII软件的使用方法以及GW48型SOPC开发平台中的输入输出模式配置方法。
通过VHDL编程,实现RS、JK、D、T四种触发器,要求四种触发器同时在开发平台上实现,并共享置位、复位端,JK、D、T三种触发器共享时钟信号端,具体接口如下所示:s:所有触发器的置位输入端,低电平有效;r:所有触发器的复位输入端,低电平有效;j:JK触发器可j控制输入端;k:JK触发器的k控制输入端;cp:时钟信号;d:D触发器数据输入端;t:T触发器控制端。
q_rs、qn_rs:RS触发器状态输出端;q_jk、qn_jk:JK触发器状态输出端;q_d、qn_d:D触发器状态输出端;q_t、qn_t:T触发器状态输出端;err[3..0]:无效状态显示输出端。
首先在QuartusII上进行功能和时序仿真,之后通过器件及其端口配置下载程序到SOPC开发平台中。
在硬件实现中,要求:1.用拨动开关实现触发器的控制信号(r、s、t、j、k、d):注:要求使用最右面6个开关。
2.用实验平台的按键实现时钟信号(cp):3.用LED阵列实现状态输出的显示:注:要求用LED3、LED11分别显示RS触发器的q_rs和qn_rs;用LED4、LED12分别显示T触发器的q_t和qn_t;用LED5、LED13分别显示JK触发器的q_jk和qn_jk;用LED6、LED14分别显示D触发器的q_d和qn_d;用LED1、LED9、LED8、LED16同时显示无效状态。
实验一4选一多路选择器一:实验目的及实验环境目的1、熟悉ModelSim SE 6.5c的verilog 的文本设计流程,组合电路的设计、仿真和测试。
2、用verilog语言完成设计4选一多路选择器。
3、熟悉文本输入及仿真步骤。
4、初步了解可编程器件设计的全过程。
环境1、P C 机一台2、M odelSim SE 6.5c二. 实验内容1、用verilog语言完成设计4选一多路选择器,2、用结构建模及数据流建模两种方法实现。
3、对于所设计的程序进行编译,检查纠错。
4、程序完善之后进行程序的仿真并进行波形的记录与分析三.实验步骤1、建立工程2、添加文件到工程3、编译文件4、查看编译后的设计单元5、将信号加入波形窗口6、运行仿真四.运行结果五.总结本次实验让我更加的熟悉modelsim使用方法,以及使用时应该注意的问题。
在试验中也学习到了Verilog语法。
在实验中我们应该注意verilog的格式要求,在用编程语言编程的时候,要自习留意语法标准,整理好逻辑思维的同时保证格式的正确。
否则就会浪费大量的时间来完成实验。
试验开始到结束这一过程中,我遇到了很多困难,后来都在同学的提醒和帮助下克服了。
相信有了这次对这个语言和这个软件的接触,我们都有了更加深入的理解。
六.源代码module mux41(a,b,c,d,s1,s0,out);input[1:0] a,b,c,d;input s1,s0;output[1:0] out;reg[1:0] out;always @(a or b or c or d or s1 or s0)begin :mux41case({s1,s0})2'b00: out<=a;2'b01: out<=b;2'b10: out<=c;2'b11: out<=d;default: out=a;endcaseendendmodulemodule sti;reg[1:0] a,b,c,d;reg s0,s1;wire[1:0] out;mux41 dtg(a,b,c,d,s0,s1,out);initialbegina=3'd0;b=3'd1;c=3'd2;d=3'd3;s0=0;s1=0;#100 a=3'd0;b=3'd1;c=3'd2;d=3'd3;s0=0;s1=1;#100 a=3'd0;b=3'd1;c=3'd2;d=3'd3;s0=1;s1=0;#100 a=3'd0;b=3'd1;c=3'd2;d=3'd3;s0=1;s1=1;endendmodule实验二、Verilog HDL设计分频器及计数器一.实验目的及实验环境1)实验目的1、掌握较复杂数字电路或系统的纯Verilog HDL实现方法;2、体会纯Verilog HDL语言输入设计与原理图输入设计的差别;3、更加熟练的使用modelsim软件;2)实验环境计算机一台,使用modelsim软件进行实验仿真3)实验内容1、使用modelsim设计二分频器;2、使用modelsim设计模8计数器;三.测试数据及运行结果1、分频器正常测试数据(3组)及运行结果;2、计数器正常测试数据(3组)及运行结果通过本次实验,进一步熟悉并加深了对verilong语言的认识,初步运用并熟悉了整个程序及操作,加深对分频器的理解。