分频电路
一、任务分析
通过利用按键控制输出不同的频率,再通过点阵显示出来设计效果。 实现分频的操作电路:
1、 二进制译码器输出端位2N个,并对应于输入代码每种频率。 2、 要熟练掌握:case语句和if语句有关知识
表--1 拨码开关 00 01 10 11
二、任务实施
1、使用VHDL并行语句,完成上述的文本编辑
输出频率 Clk1 Clk2 Clk3 Clk4 library ieee;--------------------------库 use ieee.std_logic_11.all; use ieee.std_logic_unsigned.all;
entity pinli is--------------------------实体
port ( speed1,speed2:in std_logic;--------拨码开关 hang:out std_logic_vector(7 downto 0);---点阵行 clk,clr:in std_logic;-------------时钟、清零
led:out std_logic_vector(7 downto 0)-----输出信号 ); end;
architecture art of pinli is---------------结构体
signal clk_hz:std_logic;----------------------频率输出端 signal aj:std_logic_vector(1 downto 0);--------拨码按键 signal light:std_logic_vector(7 downto 0);----------输出信号 begin
hang<=\"00000001\";-------------------赋值给点阵的行 aj<=speed1&speed2;
---------------分频------------------- process(clk)
variable cnt1:integer range 0 to 8000000; variable cnt2:integer range 0 to 5900000; variable cnt3:integer range 0 to 4000000; variable cnt4:integer range 0 to 2900000; begin
if clr='0' then-------------------清零
clk_hz<='0'; cnt1:=0; cnt2:=0; cnt3:=0; cnt4:=0;
elsif clk'event and clk='1' then
case aj is--------------------拨码按键控制四种频率的输出 when \"00\" => if cnt1=8000000 then cnt1:=0; clk_hz <=not clk_hz; else cnt1:=cnt1+1; end if;
when \"01\" =>
if cnt2=2000000 then cnt2:=0; clk_hz <=not clk_hz; else cnt2:=cnt2+1; end if;
when \"10\" => if cnt3=4000000 then cnt3:=0; clk_hz <=not clk_hz; else cnt3:=cnt3+1; end if;
when \"11\" => if cnt4=1000000 then cnt4:=0; clk_hz <=not clk_hz; else cnt4:=cnt4+1; end if; when others =>null; end case; end if; end process;
process(clr, clk_hz) is begin
if (clk_hz 'event and clk_hz ='1')then light<=\"00000000\";
end if; end process; led<=light; end;
三、仿真测试 实验操作步骤:
1、 设计完成并保存,单击编译按钮执行编译。
2、 编译完成建立矢量波形选择‘Vector Waveform File’选项后单击‘OK’
按钮。
3、
添加引脚,双击‘name’下方的空白处,弹出‘Insert Node or Bus’对话框中的‘Node Finder’添加。
4、 分别对各输入信号编辑保存。
单击工具栏中的指令,选你所需要设置按钮。设置完成后单击“OK“按钮,输入信号设置完成。
5、 完成上述各步骤,对其仿真(功能仿真、时序仿真);
仿真前,首先在Assigments菜单下的“Setings“对话框中进行设置。 在对话框选中“Functional”(功能仿真)选项或“Tming(时序仿真)”选项,单击“OK”按钮后设计完成。再单击 “Processing” 菜单中“Generate Functional Simulation Netlist”命令会自动创建功能仿真网络表。最后单击是时序仿真直接单击
即可。
表-2
即可,如果
四、在开发板上进行硬件测试
分配好引脚,对当前的工程进行编译,就锁定引脚的信息, 然后就直接单击工具栏上的
按钮就跳出一个对话框,单击对话框中
“Hardware Setup”继续单击“ Add Hardware“按钮进行设置下载电缆,设置好就关闭对话框。