EDA实验报告
山农大电子
实验名称时钟分频
实验目的
学****数控分频器的设计、分析和测试方法。
实验原理
数控分频器的功能就是当在输入端给定不同输入数据时,将对输入的时钟信号有不同的分频比,数控分频器就是用计数值可并行预置的加法计数器设计完成的,方法是将计数溢出位与预置数加载输入信号相接即可。
实验要求
将clock5连接至4096Hz,编写分频逻辑,将其分频至1Hz,2Hz,8Hz,16Hz,编写四选一MUX,可用按键控制选择分频后的某时钟。扩展实验3中的计数器,使其能计数0-99,并编写顶层文件例化分频逻辑、选择器、计数器,使计数器在不同的频率下计数。
实验步骤
【1】分频逻辑:
library ieee;
use ;
use ;
entity dvf is
port(clk:in std_logic;
s: in std_logic_vector(1 downto 0);
clkend:out std_logic);
end;
architecture one of dvf is
signal clk1_tmp:std_logic;
signal clk2_tmp:std_logic;
signal clk3_tmp:std_logic;
signal clk4_tmp:std_logic;
t2048:integer range 0 to 2048;
t1024:integer range 0 to 1024;
t512:integer range 0 to 512;
t256:integer range 0 to 256;
begin
fen1: process(clk)
begin
if clk'event and clk='1' then
t2048<2047 then
cnt2048<=cnt2048+1;
else
cnt2048<=0;
clk1_tmp<=NOT clk1_tmp ;
end if;
end if;
end process;
fen2: process(clk)
begin
if clk'event and clk='1' then
t1024<1023 then
cnt1024<=cnt1024+1;
else
cnt1024<=0;
clk2_tmp<=NOT clk2_tmp ;
end if;
end if;
end process;
fen8: process(clk)
begin
if clk'event and clk='1' then
t512<511 then
cnt512<=cnt512+1;
else
cnt512<=0;
clk3_tmp<=NOT clk3_tmp ;
end if;
end if;
end process;
fen16: process(clk)
begin
if clk'event and clk='1' then
t256<255 then
cnt256<=cnt
时钟分频 来自淘豆网www.taodocs.com转载请标明出处.