收藏 分享(赏)

B_第11章+优化和时序分析.ppt

上传人:w89153 文档编号:5945725 上传时间:2019-03-21 格式:PPT 页数:74 大小:2.04MB
下载 相关 举报
B_第11章+优化和时序分析.ppt_第1页
第1页 / 共74页
B_第11章+优化和时序分析.ppt_第2页
第2页 / 共74页
B_第11章+优化和时序分析.ppt_第3页
第3页 / 共74页
B_第11章+优化和时序分析.ppt_第4页
第4页 / 共74页
B_第11章+优化和时序分析.ppt_第5页
第5页 / 共74页
点击查看更多>>
资源描述

1、EDA 技术实用教程,第 11 章 优化和时序分析,11.1 资源优化,KX康芯科技,11.1.1 资源共享,【例11-1】 LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_unsigned.all; USE ieee.std_logic_arith.all; ENTITY multmux ISPORT (A0, A1,B : IN std_logic_vector(3 downto 0);sel : IN std_logic;Result : OUT std_logic_vector(7 downto 0); END

2、 multmux; ARCHITECTURE rtl OF multmux IS BEGINprocess(A0,A1,B,sel)beginif(sel = 0) then Result = A0 * B;else Result = A1 * B;end if; end process; END rtl;,11.1 资源优化,KX康芯科技,11.1.1 资源共享,图11-1 先乘后选择的设计方法RTL结构,11.1 资源优化,KX康芯科技,11.1.1 资源共享,图11-2 先选择后乘设计方法RTL结构,11.1 资源优化,KX康芯科技,11.1.1 资源共享,【例11-2】 ARCHITE

3、CTURE rtl OF muxmult ISsignal temp : std_logic_vector(3 downto 0); BEGINprocess(A0,A1,B,sel)beginif(sel = 0) then temp = A0; else temp = A1;end if;result = temp * B;end process; END rtl;,11.1 资源优化,KX康芯科技,11.1.1 资源共享,图11-3 资源共享反例,11.1 资源优化,KX康芯科技,11.1.2 逻辑优化,【例11-3】 LIBRARY ieee; USE ieee.std_logic_1

4、164.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; ENTITY mult1 ISPORT(clk : in std_logic;ma : In std_logic_vector(11 downto 0);mc : out std_logic_vector(23 downto 0); END mult1; ARCHITECTURE rtl OF mult1 ISsignal ta,tb : std_logic_vector(11 downto 0); BEGIN process(clk) beginif

5、(clkevent and clk = 1) thenta = ma; tb = “100110111001“; mc = ta * tb;end if; end process; END rtl;,11.1 资源优化,KX康芯科技,11.1.2 逻辑优化,【例11-4】 LIBRARY ieee; USE ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; ENTITY mult2 ISPORT(clk : in std_logic;ma : In std_logic_

6、vector(11 downto 0);mc : out std_logic_vector(23 downto 0); END mult2; ARCHITECTURE rtl OF mult2 ISsignal ta : std_logic_vector(11 downto 0);constant tb : std_logic_vector(11 downto 0) := “100110111001“; BEGIN process(clk) beginif(clkevent and clk = 1) then ta=ma; mc=ta * tb;end if; end process; END

7、 rtl;,11.1 资源优化,KX康芯科技,11.1.3 串行化,【例11-5】 LIBRARY ieee; USE ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; ENTITY pmultadd ISPORT(clk : in std_logic;a0,a1,a2,a3 : in std_logic_vector(7 downto 0);b0,b1,b2,b3 : in std_logic_vector(7 downto 0);yout : out std_log

8、ic_vector(15 downto 0); END pmultadd; ARCHITECTURE p_arch OF pmultadd IS BEGIN process(clk) beginif(clkevent and clk = 1) thenyout = (a0*b0)+(a1*b1)+(a2*b2)+(a3*b3); end if; end process; END p_arch;,yout= a0 b0 + a1 b1 + a2 b2 + a3 b3,11.1 资源优化,KX康芯科技,11.1.3 串行化,图11-4 并行并行乘法RTL结构(Synplify综合),KX康芯科技,

9、【例11-6】 LIBRARY ieee; USE ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; ENTITY smultadd ISPORT(clk, start : in std_logic;a0,a1,a2,a3 : In std_logic_vector(7 downto 0);b0,b1,b2,b3 : In std_logic_vector(7 downto 0);yout : out std_logic_vector(15 downto 0); END

10、 smultadd; ARCHITECTURE s_arch OF smultadd ISsignal cnt : std_logic_vector(2 downto 0);signal tmpa,tmpb : std_logic_vector(7 downto 0);signal tmp, ytmp : std_logic_vector(15 downto 0);BEGIN tmpa 0);elsif (cnt4) then cnt = cnt + 1; ytmp = ytmp + tmp;elsif (cnt = 4) then yout = ytmp;end if;end if; end

11、 process; END s_arch;,11.2 速度优化,KX康芯科技,11.2.1 流水线设计,图11-5 未使用流水线,11.2 速度优化,KX康芯科技,11.2.1 流水线设计,图11-6 使用流水线,11.2 速度优化,KX康芯科技,11.2.1 流水线设计,图11-7 流水线工作图示,KX康芯科技,【例11-7】 LIBRARY ieee; USE ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; ENTITY adder4 ISPORT(clk : i

12、n std_logic;a0,a1,a2,a3 : in std_logic_vector(7 downto 0);yout : out std_logic_vector(9 downto 0); END adder4; ARCHITECTURE normal_arch OF adder4 ISsignal t0,t1,t2,t3 : std_logic_vector(7 downto 0);signal addtmp0,addtmp1 : std_logic_vector(8 downto 0); BEGIN process(clk) beginif(clkevent and clk=1)

13、then t0 = a0; t1 = a1; t2 = a2; t3 = a3;end if; end process; addtmp0 = 0,KX康芯科技,【例11-8】 LIBRARY ieee; USE ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; ENTITY pipeadd ISPORT(clk : in std_logic;a0,a1,a2,a3 : in std_logic_vector(7 downto 0);yout : out std_logi

14、c_vector(9 downto 0); END pipeadd; ARCHITECTURE pipelining_arch OF pipeadd ISsignal t0,t1,t2,t3 : std_logic_vector(7 downto 0);signal addtmp0,addtmp1 : std_logic_vector(8 downto 0); BEGIN process(clk) beginif(clkevent and clk=1) then t0 = a0; t1 = a1; t2 = a2; t3 = a3;end if; end process; process(cl

15、k) beginif(clkevent and clk = 1) thenaddtmp0 = 0,11.2 速度优化,KX康芯科技,11.2.2 寄存器配平,图11-8 不合理的结构,11.2 速度优化,KX康芯科技,11.2.2 寄存器配平,图11-9 寄存器配平的结构,11.2 速度优化,KX康芯科技,11.2.3 关键路径法,图11-10 关键路径示意,11.3 优化设置与时序分析,KX康芯科技,11.3.1 Settings设置,11.3.2 HDL版本设置及Analysis & Synthesis功能,11.3.3 Analysis & Synthesis的优化设置,11.3.4 适

16、配器Fitter设置,11.3 优化设置与时序分析,KX康芯科技,图9-11 布线倍增器优化程度指数选择,11.3 优化设置与时序分析,KX康芯科技,11.3.5 增量布局布线控制设置,图11-12 反标设置,11.3 优化设置与时序分析,KX康芯科技,11.3.6 使用Design Assistant检查设计可靠性,图11-13 Design Assistant设置,11.3 优化设置与时序分析,11.3.7 时序设置与分析,图11-14 全编译前时序条件设置(设置时钟信号CLK不低于130MHz),11.3 优化设置与时序分析,11.3.7 时序设置与分析,图11-15 由Timing W

17、izard窗口设置时序条件,11.3 优化设置与时序分析,11.3.8 查看时序分析结果,图11-16 时序分析报告窗,11.3 优化设置与时序分析,11.3.8 查看时序分析结果,图11-17 Timing Analyzer Tool 项进入的时序分析报告窗,11.3 优化设置与时序分析,11.3.9 适配优化设置示例,图11-18 未用乘积项前的编译报告,KX康芯科技,【例11-9】 用CASE语句设计的正弦信号发生器 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY SIN

18、GT ISPORT ( CLK : IN STD_LOGIC;DOUT : OUT INTEGER RANGE 255 DOWNTO 0 ); END; ARCHITECTURE DACC OF SINGT ISSIGNAL Q : INTEGER RANGE 63 DOWNTO 0 ;SIGNAL D : INTEGER RANGE 255 DOWNTO 0 ; BEGIN PROCESS(CLK)BEGINIF CLKEVENT AND CLK = 1 THEN IF Q 63 THEN Q = Q + 1; ELSE Q = 0 ; END IF; END IF; END PROCESS

19、; PROCESS(Q)BEGIN CASE Q IS (接下页),KX康芯科技,WHEN 00= D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D NULL ; END CASE; END PROCESS;DOUT = D ; END;,11.3 优化设置与时序分析,11.3.9 适配优化设置示例,图11-19 针对工程选择Locate in Assignment Editor,KX康芯科

20、技,11.3 优化设置与时序分析,11.3.9 适配优化设置示例,图11-20 选用乘积项逻辑优化,KX康芯科技,11.3 优化设置与时序分析,11.3.9 适配优化设置示例,图11-21在floorplan中可以看到使用了32个ESB,KX康芯科技,11.3 优化设置与时序分析,11.3.9 适配优化设置示例,图11-22使用了乘积项的编译报告,KX康芯科技,11.3 优化设置与时序分析,11.3.10 Slow Slew Rate设置,图11-23 Slow Slew Rate选择,KX康芯科技,11.3 优化设置与时序分析,11.3.11 LogicLock优化技术,KX康芯科技,大规模

21、系统开发中,应用逻辑锁定技术可以优化设计,合理分配硬件资料,提高系统的工作速度和可靠性。QuartusII支持逻辑锁定技术的FPGA器件系列有APEX20K、APEXII、Excalibur、Cyclone/II和Stratix/II等。,11.4 Chip Editor应用,11.4.1 Chip Editor应用实例,KX康芯科技,图9-24 最左侧是CNT4B占用的LAB,11.4 Chip Editor应用,11.4.1 Chip Editor应用实例,KX康芯科技,9-25 放大后的LAB分布,11.4 Chip Editor应用,11.4.1 Chip Editor应用实例,图11

22、-26 被占用的LAB 图11-27 LAB中被占用的5个LCs,11.4 Chip Editor应用,11.4.1 Chip Editor应用实例,KX康芯科技,图11-28 Resource Property Editor的门级原理图编辑窗,11.4 Chip Editor应用,11.4.1 Chip Editor应用实例,KX康芯科技,图11-29 的时序分析报告窗图,11.4 Chip Editor应用,11.4.2 Chip Editor功能说明,KX康芯科技,图9-30 打开Netlist Explorer窗,11.4 Chip Editor应用,11.4.2 Chip Edito

23、r功能说明,KX康芯科技,图11-31 打开属性和端口连接窗,11.4 Chip Editor应用,11.4.3 利用Change Manager检测底层逻辑,KX康芯科技,图11-32 打开Change Manager窗,习 题,KX康芯科技,11-1利用资源共享的面积优化方法对下面程序进行优化(仅要求在面积上优化)。习题程序如下:,【例11-10】 LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_unsigned.all; USE ieee.std_logic_arith.all; ENTITY addmux IS

24、PORT (A,B,C,D : IN std_logic_vector(7 downto 0);sel : IN std_logic;Result : OUT std_logic_vector(7 downto 0); END addmux; ARCHITECTURE rtl OF addmux IS BEGINprocess(A,B,C,D,sel)beginif(sel = 0) then Result = A + B;else Result = C + D;end if;end process; END rtl;,习 题,KX康芯科技,11-2试通过优化逻辑的方式对图11-33中所示的结

25、构进行改进,给出VHDL代码和结构图。,图11-33 习题11-2图,习 题,KX康芯科技,11-3已知4阶直接型FIR滤波器节的数学表达式如下: y(n)=x(n)h(0)+x(n-1)+x(n-2)h(2)+x(n-3)h(3) x(n)与x(n-m),m=0,1,2,3是延迟关系,m表示延迟的clk数。x(n-m)与h(m)的位宽均为8位,y(n)为10位,其中h(m)在模块例化后为常数。该模块的输入为x(n)、clk,输出为y(n),试实现该逻辑。 11-4对习题11-3中的FIR滤波器节在速度上进行优化(在h(m)固定的情况下),试采用流水线技术。11-5利用FPGA的LUT结构,构

26、建资源占用较小的常数乘法器,改进习题11-3、11-4的设计,减少模块的资源使用。11-6若对速度要求不高,但目标芯片的容量较小,试把习题11-3中的FIR滤波器用串行化的方式实现。,习 题,KX康芯科技,11-7设计一个连续乘法器,输入为a0,a1,a2,a3,位宽各为8位,输出rout为32位,完成rout=a0*a1*a2*a3,试实现之。 11-8对11-7进行优化,判断以下实现方法,那种方法更好?rout=(a0*a1)*a2)*a3rout=(a0*a1)*(a2*a3) 11-9为提高速度,对习题11-8中的前一种方法加上流水线技术进行实现。 11-10试对以上的习题解答通过设置

27、QuartusII相关选项的方式,提高速度,减小面积。,实 验 与 设 计,KX康芯科技,11-1 采用流水线技术设计高速数字相关器 (1) 实验目的:设计一个在数字通信系统中常见的数字相关器,并利用流水线技术提高其工作速度,对其进行仿真和硬件测试。 (2) 实验原理:数字相关器用于检测等长度的两个数字序列间相等的位数,实现序列间的相关运算。 一位相关器,即异或门,异或的结果可以表示两个1位数据的相关程度。异或为0表示数据位相同;异或为1表示数据位不同。多位数字相关器可以由多个一位相关器构成,如N位的数字相关器由N个异或门和N个1位相关结果统计电路构成。 (3) 实验内容1:根据上述原理设计一

28、个并行4位数字相关器(例9-17是示例程序)。 提示:利用CASE语句完成4个1位相关结果的统计。,实 验 与 设 计,KX康芯科技,11-1 采用流水线技术设计高速数字相关器,【例11-11】 stemp c c c c c c = “000“;END CASE; END PROCESS;,实 验 与 设 计,KX康芯科技,11-1 采用流水线技术设计高速数字相关器 (4) 实验内容2:利用实验内容1中的4位数字相关器设计并行16位数字相关器。使用QuartusII估计最大延时,并计算可能运行的最高频率。 (5) 实验内容3:在以上实验的基础上,利用设计完成的4位数字相关器设计并行16位数字

29、相关器,其结构框图可参考图11-33,并利用QuartusII计算运行速度。 (6) 实验内容4:上面的16位数字相关器是用3级组合逻辑实现的,在实际使用时,对其有高速的要求,试使用流水线技术改善其运行速度。在输入、输出及每一级组合逻辑的结果处加入流水线寄存器,提高速度,可参照本章内容进行设计。 (7) 实验思考题:考虑采用流水线后的运行速度与时钟clock的关系,测定输出与输入的总延迟。若输入序列是串行化的,数字相关器的结构如何设计?如何利用流水线技术提高其运行速度? (8) 实验报告:根据以上的实验内容写出实验报告,包括设计原理、程序设计、程序分析、仿真分析、硬件测试和详细实验过程。,实

30、验 与 设 计,KX康芯科技,11-2 线性反馈移位寄存器设计 (1) 实验目的:学习用VHDL设计LFSR,掌握利用FPGA的特殊结构中高效实现LFSR的方法。 (2) 实验原理:LFSR即Linear Feedback Shift Register 线性反馈移位寄存器,是一种十分有用的时序逻辑结构,广泛用于伪随机序列发生、可编程分频器、CRC校验码生成、PN码等等。图11-34是典型的LFSR结构。由图中可以看出LFSR由移位寄存器加上xor构成,不同的xor决定了不同的生成多项式。图11-34中的生成多项式为X3+X2+X0。 (3) 实验内容:依据图11-34设计一个LFSR,其生成多

31、项式为X4+X3+X0。试在FPGA上加以实现,并利用本章中提及的QuartusII优化选项,使之达到最高运行速度,并在GW48 EDA开发系统上,对其产生的码序列进行观察。,实 验 与 设 计,KX康芯科技,11-2 线性反馈移位寄存器设计 (4) 实验思考题1:另有一种LFSR的结构,见图11-35,试分析与图11-34中LFSR结构的异同点。 (5) 实验思考题2:对图11-35结构的LFSR电路进行改进,设计成串行CRC校验码发生器(提示:反馈线上加入xor,xor的一个输入端接待编码串行有效信息输入)。 (6) 实验报告:作出本项实验设计的完整电路图,详细说明其工作原理,完成测试实验

32、内容,对实验中的码序列进行记录,写出电路可达到的最高运行速度及设置的QuartusII选项。,实 验 与 设 计,KX康芯科技,11-2 线性反馈移位寄存器设计,图11-34 LFSR举例,实 验 与 设 计,KX康芯科技,11-2 线性反馈移位寄存器设计,图11-35 另一种LFSR结构,实 验 与 设 计,KX康芯科技,11-3 直接数字式频率合成器(DDS)设计实验 (1) 实验目的:学习利用EDA技术和FPGA实现直接数字频率综合器DDS的设计。 (2) 实验原理:直接数字频率综合技术,即DDS技术,是一种新型的频率合成技术和信号产生方法。其电路系统具有较高的频率分辨率,可以实现快速的

33、频率切换,并且在改变时能够保持相位的连续,很容易实现频率、相位和幅度的数控调制。,fSIN = M(fclk/2n) 11-1,实 验 与 设 计,KX康芯科技,11-3 直接数字式频率合成器(DDS)设计实验,图11-36 DDS基本结构,实 验 与 设 计,KX康芯科技,11-3 直接数字式频率合成器(DDS)设计实验,图11-37 相位累加器位宽和采样点关系,实 验 与 设 计,KX康芯科技,11-3 直接数字式频率合成器(DDS)设计实验,【例11-12】 LIBRARY ieee; -波形数据ROM USE ieee.std_logic_1164.all; LIBRARY alter

34、a_mf; USE altera_mf.altera_mf_components.all; ENTITY data_rom ISPORT( address : IN STD_LOGIC_VECTOR (9 DOWNTO 0);inclock : IN STD_LOGIC ;q : OUT STD_LOGIC_VECTOR (9 DOWNTO 0) ); END data_rom;. . .init_file = “./data/LUT10X10.mif“, -波形数据初始化文件路径lpm_hint = “ENABLE_RUNTIME_MOD=YES, INSTANCE_NAME=rom2“,

35、. . . END;,实 验 与 设 计,KX康芯科技,11-3 直接数字式频率合成器(DDS)设计实验,【例11-13】 LIBRARY IEEE; -32位加法器模块 USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY ADDER32B ISPORT ( A : IN STD_LOGIC_VECTOR(31 DOWNTO 0);B : IN STD_LOGIC_VECTOR(31 DOWNTO 0);S : OUT STD_LOGIC_VECTOR(31 DOWNTO 0) ); END ADDER32B

36、; ARCHITECTURE behav OF ADDER32B ISBEGINS = A + B; END behav;,实 验 与 设 计,KX康芯科技,11-3 直接数字式频率合成器(DDS)设计实验,【例11-14】-32位寄存器模块 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY REG32B ISPORT ( Load : IN STD_LOGIC;DIN : IN STD_LOGIC_VECTOR(31 DOWNTO 0);DOUT : OUT STD_LOGIC_VECTOR(31 DOWNTO 0) ); END REG32

37、B; ARCHITECTURE behav OF REG32B IS BEGINPROCESS(Load, DIN)BEGINIF LoadEVENT AND Load = 1 THEN - 时钟到来时,锁存输入数据DOUT = DIN;END IF;END PROCESS; END behav;,实 验 与 设 计,KX康芯科技,11-3 直接数字式频率合成器(DDS)设计实验,【例11-15】rom_data.mif 10位正弦波数据文件,读者可用MATLAB/DSP Builder生成 WIDTH=10; DEPTH=1024; ADDRESS_RADIX=DEC; DATA_RADIX

38、=DEC; CONTENT BEGIN0 : 513; 1 : 515; 2 : 518; 3 : 521; 4 : 524; 5 : 527; 6 : 530; 7 : 533;8 : 537; 9 : 540; 10 : 543; 11 : 546; 13 : 549; 13 : 552; 14 : 555;. . . . . .(略去部分数据)1018 : 493; 1019 : 496; 1020 : 499; 1021 : 502; 1022 : 505; 1023 : 508; END;,实 验 与 设 计,KX康芯科技,11-3 直接数字式频率合成器(DDS)设计实验,图11-3

39、8 DDS.vhd顶层原理图,实 验 与 设 计,KX康芯科技,11-3 直接数字式频率合成器(DDS)设计实验,图11-39 DDS.vhd仿真波形,实 验 与 设 计,KX康芯科技,11-3 直接数字式频率合成器(DDS)设计实验 (3) 实验内容1:详细述叙DDS的工作原理,依据例11-12至例11-15完成仿真,并由仿真结果进一步说明DDS的原理。完成编译和下载。选择模式1;键2、键1输入8位频率字FWORD;利用GW48系统ADDA板上的10位D/A5651输出波形,用示波器观察输出波形。 (4) 实验内容2:根据图11-36,在原设计(图11-38)中加入相位控制电路,用键4、键3

40、输入8位相位字PWORD;重复实验1的内容。 (5) 实验内容3:将图11-38的顶层原理图表述为VHDL,重复实验1的内容。 (6) 实验内容4:在图11-38的设计中增加一些元件,设计成扫频信号源,扫频速率、扫频频域、扫频步幅可设置。,实 验 与 设 计,KX康芯科技,11-3 直接数字式频率合成器(DDS)设计实验 (7) 实验内容5:例11-12后的程序将32位频率字和10位相位字作了截断,都是8位。如果不作截断,修改其中的程序,并设法在GW48实验系统上完成实验(提示,增加2个锁存器与单片机通信)。 (8) 实验内容6:将上例改成频率可数控的正交信号发生器,即使电路输出两路信号,且相

41、互正交,一路为正弦(sin)信号,一路为余弦(cos)信号(此电路可用于正交方式的信号调制解调)。 (9) 实验内容7:利用上例设计一个FSK信号发生器,并硬件实现之。 (10) 思考题:如果不作截断,此例的频率精度和相位精度分别是多少?,实 验 与 设 计,KX康芯科技,11-4 基于DDS的数字移相信号发生器设计实验(1) 实验原理:移相信号发生器是2003年大学生电子设计竞赛题中的一个设计项目。图11-40是基于DDS模型的数字移相信号发生器的电路模型图,示例程序如例11-16所示。 (2)实验内容1:完成10位输出数据宽度的移相信号发生器的设计,其中包括设计正弦波形数据MIF文件(数据

42、深度1024、数据类型是十进制数);给出仿真波形。最后进行硬件测试,对于GW48系统,推荐选择模式1:CLK接clock0,接13MHz;用键4、3控制相位字PWORD输入,键2、1控制频率字FWORD输入。观察它们的图形和李萨如图形。 (3)实验内容2:修改设计,增加幅度控制电路(如可以用一乘法器控制输出幅度)。 (4)实验内容3:将此信号发生器改成具有扫频功能的波形发生器,扫速可数控,点频扫频可控。 (5)实验思考题:如果频率控制字宽度直接用32位,相位控制字宽度直接用10位,输出仍为10位,时钟为20MHz,计算频率、相位和幅度三者分别的步进精度是多少,给出输出频率的上下限。 (6)实验

43、报告:根据以上的实验要求、实验内容和实验思考题写出实验报告。,实 验 与 设 计,KX康芯科技,图11-40 数字移相信号发生器电路模型图,实 验 与 设 计,KX康芯科技,【例11-16】数字移相信号发生器顶层设计文件,元件连接结构参考图11-40。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY DDS_VHDL IS - 顶层设计PORT ( CLK : IN STD_LOGIC; -系统时钟FWORD : IN STD_LOGIC_VECTOR(7 DOWNTO 0);

44、 -频率控制字PWORD : IN STD_LOGIC_VECTOR(7 DOWNTO 0); -相位控制字FOUT : OUT STD_LOGIC_VECTOR(9 DOWNTO 0); -可移相正弦信号输出POUT : OUT STD_LOGIC_VECTOR(9 DOWNTO 0) ); -参考信号输出END; ARCHITECTURE one OF DDS_VHDL ISCOMPONENT REG32B -32位锁存器PORT ( LOAD : IN STD_LOGIC;DIN : IN STD_LOGIC_VECTOR(31 DOWNTO 0);DOUT : OUT STD_LOGI

45、C_VECTOR(31 DOWNTO 0) );END COMPONENT;COMPONENT REG10B -10位锁存器PORT ( LOAD : IN STD_LOGIC;DIN : IN STD_LOGIC_VECTOR(9 DOWNTO 0);DOUT : OUT STD_LOGIC_VECTOR(9 DOWNTO 0) );END COMPONENT;COMPONENT ADDER32B -32位加法器PORT ( A : IN STD_LOGIC_VECTOR(31 DOWNTO 0);(接下页),实 验 与 设 计,KX康芯科技,B : IN STD_LOGIC_VECTOR(

46、31 DOWNTO 0);S : OUT STD_LOGIC_VECTOR(31 DOWNTO 0) );END COMPONENT;COMPONENT ADDER10B -10位加法器PORT ( A : IN STD_LOGIC_VECTOR(9 DOWNTO 0);B : IN STD_LOGIC_VECTOR(9 DOWNTO 0);S : OUT STD_LOGIC_VECTOR(9 DOWNTO 0) );END COMPONENT;COMPONENT SIN_ROM -10位地址10位数据正弦信号数据ROMPORT ( address : IN STD_LOGIC_VECTOR(

47、9 DOWNTO 0);inclock : IN STD_LOGIC ;q : OUT STD_LOGIC_VECTOR(9 DOWNTO 0) );END COMPONENT; SIGNAL F32B,D32B,DIN32B : STD_LOGIC_VECTOR(31 DOWNTO 0);SIGNAL P10B,LIN10B,SIN10B : STD_LOGIC_VECTOR( 9 DOWNTO 0);BEGIN F32B(27 DOWNTO 20)F32B,B=D32B, S=DIN32B );u2 : REG32B PORT MAP( DOUT=D32B,DIN= DIN32B, LOA

48、D=CLK );u3 : SIN_ROM PORT MAP( address=SIN10B, q=FOUT, inclock=CLK );u4 : ADDER10B PORT MAP( A=P10B,B=D32B(31 DOWNTO 22),S=LIN10B );u5 : REG10B PORT MAP( DOUT=SIN10B,DIN=LIN10B, LOAD=CLK ); u6 : SIN_ROM PORT MAP( address=D32B(31 DOWNTO 22), q=POUT, inclock=CLK ); END;,实 验 与 设 计,KX康芯科技,1-5 基于DDS的幅度调制

49、AM信号发生器设计 (1)实验原理:幅度调制信号发生器是2005年大学生电子设计竞赛题中的一个设计项目。 (2)实验内容1:利用MATLAB和DSP Builder,根据图11-41,完成电路模型设计,使产生图11-42的波形,最后在FPGA上硬件实现,并于示波器上验证图11-42的波形。 (3)实验内容2:将图11-41模型完全用VHDL表达出来(顶层设计可以用原理图),直接用QuartusII实现硬件设计,仿真和FPGA实现,比较两种方法的异同点(如输出频率的高低,资源利用等)。,实 验 与 设 计,KX康芯科技,1-5 基于DDS的幅度调制AM信号发生器设计,图11-41 AM发生器模型,实 验 与 设 计,KX康芯科技,1-5 基于DDS的幅度调制AM信号发生器设计,图11-42 AM模型仿真波形,KX康芯科技,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 教育学

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报