EDA数控分频器

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

分频器实验报告
一:实验目的
1 更加熟悉数控分频器的原理和熟练编程。

2设计一个能够用用程序控制的分频器。

3应具备有(2~64)偶数可选分频的基本功能。

4有使能控制键。

二:实验原理
数控分频器实际上就是计数器。

其功能就是在输入不同的数据时,对输入的时钟进行不同的分频,如:若输入00100000,则是4分频。

把计数累加的数值跟输入的数值相比较,来达到可控的目的。

三:实验设备
EDA实验箱,电脑
四:实验程序
定义一个被分频时钟输入,一个分频后信号输出,8个拨码开关做输入。

定义两个进程,IF语句是关键。

程序如下:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity fengpin is
port( clk:in std_logic;
jin:in std_logic_vector(7 downto 0);
cout:out std_logic );
end ;
architecture one of fengpin is
signal full :std_logic;
begin
p1:process(clk)
variable cnt8 :std_logic_vector(7 downto 0); begin
if clk'event and clk ='1' then
if cnt8="11111111" then
cnt8:=jin;
full<='1';
else cnt8:=cnt8+1;
full<='0' ;
end if ;
end if;
end process p1;
p2:process(full)
variable cnt2:std_logic;
begin
if full'event and full='1' then
cnt2:=not cnt2;
if cnt2='1' then cout<='1';
else cout<='0';
end if;
end if ;
end process p2;
end ;
五:实验步骤
在QUARTUS中建立工程,使用器件为EP1K30QC208,用VHDL 语言描述,综合通过后,定义引脚,生成SOF文件,下到FPGA,观察现象。

六:实验效果
将输出端接一个扬声器,输入一个时钟信号,频率不能太小,当改变输入的数值,扬声器便会发出不同的音调。

七:总结与扩展
做分频器,要了解其原理。

还可以扩展输入,将频率分得更精确。

实验报告人:****
2010年6月1日。

相关文档
最新文档