3)通过QuartusⅡ集成环境,将设计下载到实验电路上进行硬件测试。
输入不同的clk信号和不同的输入控制信号,测试输出波形。 管脚锁定:
clk clk1 1
预置数D(3) PIO23 30 SW1
D(2) PIO24 35 SW2 D(1) Pio25 36 SW3 D(0) PIO26 37 SW4
分频输出Fout PIO19 29 LED12
四、思考题:
如果需要进行奇数分频(如3分频),能否够保持输出波形的占空比为50%?如果不能,如何使占空比尽量接近50%;如果可以,应如何做? library IEEE;
use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity DIV3 is
port (clk: in std_logic; out1: out std_logic); end DIV3;
architecture Behav of DIV3 is
signal division2,division4 :std_logic:='0'; signal temp1,temp2:integer range 0 to 10;
begin
p1:process(clk) begin
if rising_edge(clk) then temp1<=temp1+1; if temp1=1 then division2<='1'; elsif temp1=2 then division2<='0'; temp1<=0; end if; end if; end process p1;
p2:process(clk) begin
if clk'event and clk='0' then temp2<=temp2+1; if temp2=1 then division4<='1'; elsif temp2=2 then division4<='0'; temp2<=0; end if; end if;
end process p2;
p3:process(division2,division4) begin
out1<=division2 or division4; end process p3; end Behav;
实验七 4一、实验目的:
设计一个4位十进制频率计,学习用VHDL语言进行较为复杂的数字系统设
位十进制频率计的设计
计。
二、实验原理:
根据频率的定义和频率测量的基本原理,测定信号的频率必须有一个脉宽为1秒的脉冲计数允许信号,1秒计数结束后,计数值(即所测信号频率)锁入锁存器,并为下一次测频作准备,即将计数器清零。 三、实验内容:
1) 根据频率计的工作原理,将电路划分成控制器、计数器、锁存器和LED显示几个模块,顶层文件与模块电路均用VHDL硬件描述语言进行设计。 控制器——产生1秒脉宽的计数允许信号、锁存信号和计数器清零信号 计数器——对输入信号的脉冲数进行累计 锁存器——锁存测得的频率值 LED显示——将频率值显示在数码管上 顶层文件框图如下:
clkcontrollerrstDecimalcounterEnaOutputbuffera,b,c,d,e,f,g,dpLEDcontrollerS0~1
用元件例化语句写出频率计的顶层文件。 2)分别用VHDL语言设计各个模块
本实验中不少模块在之前的实验中已经有所涉及,只需要对以前的设计做部分修改即可用于这次实验。
提示:十进制计数器输出的应是4位十进制数的BCD码,因此一共的输出是4×4bit
3)用QuartusⅡ对设计进行编译、综合、仿真,给出仿真波形和时序分析数据(不包括数码管显示部分)。
3)通过QuartusⅡ集成环境,将设计下载到实验电路上进行硬件测试。 管脚锁定:
Clk clk1 1
输入fx (频率任选)
数码管段输出A(7): 81 SEG dp
A(6): PIO6 11 SEG g A(5): PIO5 10 SEG f A(4): PIO4 9 SEG A(3): PIO3 8 SEG d A(2): PIO2 7 SEG c A(1): PIO1 6 SEG b A(0): PIO0 5 SEG a
74ls138输入S(1):
S(0):
四、思考题:
79 78
相关推荐: