正负脉宽数控调制信号发生器
- 格式:doc
- 大小:855.00 KB
- 文档页数:6
EDA技术课程大作业
设计题目: 正负脉宽数控调制信号发生器
院 系:安阳工学院电子信息与电气工程系
学生姓名:
学 号: 200902070001
专业班级: 电子信息工程专升本
2010年 12 月 8 号
正负脉宽数控调制信号发生器
1.设计背景和设计方案
1.1 设计背景
随着EDA的发展,信号发生器能和任何数字器件组合在一起,在任何条件下给出
很高的波形质量.通过软件仿真,可以验证设计的正确性.信号发生器是够产生大
量标准信号和用户定义信号并保证高精度和高稳定性的仪器.
1.2系统原理设计框图
图1
1.3试验目的
(1)学会正负脉宽数控可调的方波信号发生器的设计。
(2)学会用元件例化语句描述顶层设计。
1.4试验原理
图1是脉宽数控调制信号发生器逻辑图,此信号发生器是由两个完全相同的可自
加载加法计数lcnt8组成的,它的输出信号的高低电平脉宽可分别由两组8位预
置数进行控制。
如果将初始值可预置的加法计数器的溢出信号作为本计数器的初始预置加载信
号LD,则可构成计数初始值自加载方式的加法计数器,从而构成数控分频器。
图A中D触发器的一个重要功能就是均匀输出信号的占空比,提高驱动能力。这
对驱动诸如扬声器或电动机十分重要。
2.方案实施
2.1试验设计思路
(1)说明以上两个程序中各语句及整个程序完成的功能,在quartusⅡ中输入
源程序,然后进行编译和仿真,验证其正确性。
(2)引脚锁定。在GW48-CK试验系统中,选择试验电路结构图NO.1,由试验电
路结构图和图a确定引脚的锁定。输入时钟CLK接CLOCK0(用于发声时,接频
率65536HZ);8位数控预置输入B[7..0]接PIO7~PIO0,由键1和键2控制输入,
输入值分别显示于数码管2和数码管1;输出PSOUT接SPEAKER(对应1032E是
第5引脚PIN5;对应EPF10K是第3引脚PIN3)。
(3)硬件验证。向目标芯片下载适配后的逻辑设计文件,通过键2和键1输入
控制高电平信号脉宽的预置数(显示于数码管2和1);由键4和键3输入控制
低电平信号脉宽的预置数(显示于数码管4和3);取待分频率F=12 MHZ,6MHZ,
或3MHZ,通过短路帽输入CLK9;频率输出可利用示波器观察波形随预置数的变化
而变化的情况。在没有示波器时,CLK可接低频率信号,然后接通扬声器,通过
声音音调的变化来了解输出频率的变化。
2.2源程序
(1)8位可自加载加法计数器的源程序lcnt8.vhd
library ieee;
use ieee.std_logic_1164.all;
entity lcnt8 is 8位可自加载加法计数器
port(clk,ld:in std_logic; 工作时钟/预置值加载信号
d:in integer range 0 to 255; 8位分频预置数
cao:out std_logic); 计数溢出输出
end lcnt8;
architecture art of lcnt8 is
signal count:integer range 0 to 255; 8位计数器设置
begin
process(clk)
begin
if clk'event and clk='1' then
if ld='1'then count<=d; ld为高电平时加载预置数
else count<=count+1; 否则继续计数
end if;
end if;
end process;
process(count)
begin
if count=255 then cao<='1'; 计数满后,置于溢出位
else cao<='0';
end if;
end process;
end art;
(2)正负脉宽数控调制信号发生器的源程序pulse.vhd
library ieee; 正负脉宽数控调制信号发生器顶层文件
use ieee.std_logic_1164.all;
entity pulse is
port(clk:in std_logic; 计数时钟
a,b:in std_logic_vector(7 downto 0); 8位计数预置数
psout:out std_logic); 计数溢出并分频输出
end pulse;
architecture art of pulse is
component lcnt8
port(clk,ld:in std_logic;
d:in std_logic_vector(7 downto 0);
cao:out std_logic);
end component;
signal cao1,cao2:std_logic;
signal ld1,ld2:std_logic;
signal psint:std_logic;
begin
u1:lcnt8 port map(clk=>clk,ld=>ld1,d=>a,cao=>cao1);
u2:lcnt8 port map(clk=>clk,ld=>ld2,d=>b,cao=>cao2);
process(cao1,cao2)
begin
if cao1='1' then psint<='0';
elsif cao2'event and cao2='1' then psint<='1';
end if;
end process;
ld1<=not psint;ld2<=psint;psout<=psint;
end art;
2.2仿真波形图
仿真前波形输入设置
波形仿真
图a: Lcnt8 图b: pluse
3.结果和结论
通过波形仿真可见,该设计功能全部能够实现,而且运行正常,达到了预期的目
的.