《电子系统设计A》由会员分享,可在线阅读,更多相关《电子系统设计A(60页珍藏版)》请在金锄头文库上搜索。
1、EDA技术实用教程第第1212章章(A A)电子系统设计实践电子系统设计实践K KX康芯科技12.1 等精度频率计设计在此完成的设计项目可达到的指标为:(1)频率测试功能:测频范围0.1Hz100MHz。测频精度:测 频全域相对误差恒为百万分之一。(2)脉宽测试功能:测试范围0.1s1s,测试精度0.01s 。(3)占空比测试功能:测试精度199。K KX康芯科技 12.1 等精度频率计设计12.1.1 主系统组成图12-1 频率计主系统电路组成K KX康芯科技 12.1 等精度频率计设计12.1.2 测频原理图12-2 等精度频率计主控结构K KX康芯科技设在一次预置门时间Tpr中对被测信号
2、计数值为Nx,对标准频率 信号的计数值为Ns,则下式成立:12-1不难得到测得的频率为: 12-2图12-3 频率计测控时序K KX康芯科技12.1.3 FPGA/CPLD开发的VHDL设计占空比 = 12-3【例12-1】 LIBRARY IEEE; -等精度频率计 USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY GWDVPB ISPORT (BCLK : IN STD_LOGIC; -CLOCK1 标准频率时钟信号TCLK : IN STD_LOGIC; - 待测频率时钟信号CLR : IN STD_
3、LOGIC; - 清零和初始化信号CL : IN STD_LOGIC; -预置门控制SPUL : IN STD_LOGIC; -测频或测脉宽控制START : OUT STD_LOGIC; EEND : OUT STD_LOGIC; -由低电平变到高电平时指示脉宽计数结束SEL : IN STD_LOGIC_VECTOR(2 DOWNTO 0); -多路选择控制DATA : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); -位数据读出END GWDVPB; 接下页K KX康芯科技 ARCHITECTURE behav OF GWDVPB ISSIGNAL BZQ,TSQ :
4、 STD_LOGIC_VECTOR(31 DOWNTO 0);-标准计数器/测频计数器SIGNAL ENA,PUL : STD_LOGIC; - 计数使能/脉宽计数使能SIGNAL MA,CLK1,CLK2,CLK3 : STD_LOGIC ;SIGNAL Q1,Q2,Q3,BENA : STD_LOGIC;SIGNAL SS : STD_LOGIC_VECTOR(1 DOWNTO 0);BEGINSTART 0 ) ;ELSIF BCLKEVENT AND BCLK = 1 THENIF BENA = 1 THEN BZQ 0 );ELSIF TCLKEVENT AND TCLK = 1 T
5、HENIF ENA = 1 THEN TSQ ADck ADck ADck 0);ELSIF lockEVENT AND lock=1 THEN data 0);ELSIF lockEVENT AND lock=1 THEN data rom_d_width,LPM_WIDTHAD = romad_width,LPM_ADDRESS_CONTROL = “UNREGISTERED“,LPM_OUTDATA = “REGISTERED“,LPM_FILE = “sin_rom.mif“ )- 指向rom文件PORT MAP ( outclock = clk,address = romaddr,q
6、 = ddsout );end architecture behave;下面是产生SIN ROM数据值的C程序: #include #include “math.h“ main() int i;float s; for(i=0;i sin_rom.mif;K KX康芯科技图12-13 DDS主模块RTL综合结果K KX康芯科技基本DDS结构的常用参量计算(1) DDS的输出频率fout。12-10(2) DDS的频率分辨率 。12-11(3) DDS的频率输入字 计算。注意 要取整,有时会有误差。K KX康芯科技【例12-5】 - 简易频率合成器 - DDS(32bit频率字,1024 poi
7、nts 10bit out) - For GW48-CK - Mode: No.1 library ieee; use ieee.std_logic_1164.all; entity ddsall isport( sysclk : in std_logic; - 系统时钟ddsout : out std_logic_vector(9 downto 0);- DDS输出- GW48 接口 sel : in std_logic; - 输入频率字高低16位选择selok : in std_logic; - 选择好信号pfsel : in std_logic; - 输入频率、相位选择- 频率/相位字输
8、入(与sel、selok配合使用)fpin : in std_logic_vector(15 downto 0);end ddsall; architecture behave of ddsall iscomponent ddsc is - DDS主模块接下页K KX康芯科技generic(freq_width : integer := 32; - 输入频率字位宽phase_width : integer := 12; - 输入相位字位宽adder_width : integer := 32; - 累加器位宽romad_width : integer := 10; - 正弦ROM表地址位宽ro
9、m_d_width : integer := 10 - 正弦ROM表数据位宽); port( clk : in std_logic; - DDS合成时钟 freqin : in std_logic_vector (freq_width-1 downto 0);- 频率字输入 phasein :in std_logic_vector(phase_width-1 downto 0);- 相位字输入 ddsout :out std_logic_vector(rom_d_width-1 downto 0);- DDS输出end component ddsc;signal clkcnt : intege
10、r range 4 downto 0; - 分频器signal clk : std_logic;signal freqind : std_logic_vector(31 downto 0); - 频率字signal phaseind: std_logic_vector(11 downto 0); - 相位字 begini_ddsc : ddsc - 例化DDSCport map(clk = clk, ddsout = ddsout, phasein = phaseind, freqin = freqind);clk = log2(CLK_DIV)cw : integer:= 11);PORT(
11、 clk : IN STD_LOGIC;resetL : IN STD_LOGIC;bclk : OUT STD_LOGIC); END baud; ARCHITECTURE behv OF baud ISconstant CLK_DIV_coef : integer := XTAL_CLK / (BAUD * 16 * 2);SIGNAL clk_div : STD_LOGIC_VECTOR(cw-1 downto 0);signal bclk_t : std_logic; BEGIN process(clk,resetL)接下页K KX康芯科技beginif(resetL = 0) the
12、nclk_div 0); bclk_t 0); bclk_t = not bclk_t;else clk_div = clk_div + 1;end if;end if; end process; bclk = bclk_t; end behv;K KX康芯科技 2. UART接收器图12-28 UART接 收状态机K KX康芯科技3. UART发送器图12-29 UART发送 状态机K KX康芯科技 4. UART设计总模块图12-30 UART总模块RTL图K KX康芯科技下对UART总模块中涉及的外部端口作简要说明:时钟信号clk(输入)复位信号resetL(输入)16时钟bclk(输出
13、)UART发送txd(输出)发送缓冲xbuf(输入)发送命令xmit_cmd(输入)发送完成xmit_done(输出)UART接收rxd(输入)接收缓冲rbuf(输出)K KX康芯科技实 验根据以上给出的6个项目的设计原理和示例,分别或综合进 行针对某一课程要求的设计实验,如作为毕业设计课题、电子 设计竞赛实验练题,或课外科技活动的练。 在这些设计项目中除了需要熟悉VHDL、EDA软件应用和FPGA开 发外,还需了解许多其它的电路设计知识、开发技术和在EDA 实验系统上的硬件实现方法,例如:电子设计综合实验K KX康芯科技 实 验对于“等精度频率计设计”,还必须熟悉单片机汇编语言, 各种算法程
14、序的编写方法、了解FPGA和单片机的接口以及用 于待测信号输入的高速整形器件的应用。对于“高速A/D采样控制设计”,还必须熟悉高速A/D器件 TLC5510的使用方法,FPGA与RAM的接口或FPGA中EAB的 使用方法等。 对于“VGA图象显示控制器设计”,则要详细了解VGA显示 器的工作原理和输入端口的功能。如果希望用FPGA和单片机 控制液晶VGA显示器,以便完成各种形式的动态显示,则需 了解更多的知识。电子设计综合实验K KX康芯科技 实 验对于“直接数字合成器(DDS)设计”,十分重要的是了解 DDS的实现原理和高速D/A器件的使用方法及与FPGA的接口 。 对于“使用IP Core设计FIR滤波器”,要了解FIR的实现 原理及高速A/D和D/A器件的使用方法,以及IP核的获得及其 使用方法。对于“通用异步收发器(UART)设计”,要了解PC机的 串行接口技术和上位机与FPGA通信程序的设计方法,以及 RS232接口电路的设计方法。电子设计综合实验