第11章優(yōu)化和時(shí)序分析.ppt_第1頁(yè)
第11章優(yōu)化和時(shí)序分析.ppt_第2頁(yè)
第11章優(yōu)化和時(shí)序分析.ppt_第3頁(yè)
第11章優(yōu)化和時(shí)序分析.ppt_第4頁(yè)
第11章優(yōu)化和時(shí)序分析.ppt_第5頁(yè)
已閱讀5頁(yè),還剩69頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、EDA 技術(shù)實(shí)用教程,第 11 章 優(yōu)化和時(shí)序分析,11.1 資源優(yōu)化,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 IS PORT (A0, A1,B : IN std_logic_vector(3 downto 0); sel : IN std_logic; Result : OUT std_logic_vector(7 downto 0);

2、END multmux; ARCHITECTURE rtl OF multmux IS BEGIN process(A0,A1,B,sel) begin if(sel = 0) then Result = A0 * B; else Result = A1 * B; end if; end process; END rtl;,11.1 資源優(yōu)化,KX康芯科技,11.1.1 資源共享,圖11-1 先乘后選擇的設(shè)計(jì)方法RTL結(jié)構(gòu),11.1 資源優(yōu)化,KX康芯科技,11.1.1 資源共享,圖11-2 先選擇后乘設(shè)計(jì)方法RTL結(jié)構(gòu),11.1 資源優(yōu)化,KX康芯科技,11.1.1 資源共享,【例11-2】

3、 ARCHITECTURE rtl OF muxmult IS signal temp : std_logic_vector(3 downto 0); BEGIN process(A0,A1,B,sel) begin if(sel = 0) then temp = A0; else temp = A1; end if; result = temp * B; end process; END rtl;,11.1 資源優(yōu)化,KX康芯科技,11.1.1 資源共享,圖11-3 資源共享反例,11.1 資源優(yōu)化,KX康芯科技,11.1.2 邏輯優(yōu)化,【例11-3】 LIBRARY ieee; USE i

4、eee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; ENTITY mult1 IS PORT(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 IS signal ta,tb : std_logic_vector(11 downto 0); BEGIN p

5、rocess(clk) begin if(clkevent and clk = 1) then ta = ma; tb = 100110111001; mc = ta * tb; end if; end process; END rtl;,11.1 資源優(yōu)化,KX康芯科技,11.1.2 邏輯優(yōu)化,【例11-4】 LIBRARY ieee; USE ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; ENTITY mult2 IS PORT(clk : in std_log

6、ic; ma : In std_logic_vector(11 downto 0); mc : out std_logic_vector(23 downto 0); END mult2; ARCHITECTURE rtl OF mult2 IS signal ta : std_logic_vector(11 downto 0); constant tb : std_logic_vector(11 downto 0) := 100110111001; BEGIN process(clk) begin if(clkevent and clk = 1) then ta=ma; mc=ta * tb;

7、 end if; end process; END rtl;,11.1 資源優(yōu)化,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 IS PORT(clk : in std_logic; a0,a1,a2,a3 : in std_logic_vector(7 downto 0); b0,b1,b2,b3 : in std_logic_vector(7

8、downto 0); yout : out std_logic_vector(15 downto 0); END pmultadd; ARCHITECTURE p_arch OF pmultadd IS BEGIN process(clk) begin if(clkevent and clk = 1) then yout = (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 資源優(yōu)化,KX康芯科技,11.1.3 串行化,圖11-4

9、并行乘法RTL結(jié)構(gòu)(Synplify綜合),KX康芯科技,【例11-6】 LIBRARY ieee; USE ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; ENTITY smultadd IS PORT(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 s

10、td_logic_vector(15 downto 0); END smultadd; ARCHITECTURE s_arch OF smultadd IS signal 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 =

11、 4) then yout = ytmp; end if; end if; end process; END s_arch;,11.2 速度優(yōu)化,KX康芯科技,11.2.1 流水線設(shè)計(jì),圖11-5 未使用流水線,11.2 速度優(yōu)化,KX康芯科技,11.2.1 流水線設(shè)計(jì),圖11-6 使用流水線,11.2 速度優(yōu)化,KX康芯科技,11.2.1 流水線設(shè)計(jì),圖11-7 流水線工作圖示,KX康芯科技,【例11-7】 LIBRARY ieee; USE ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.std_logi

12、c_arith.all; ENTITY adder4 IS PORT(clk : in 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 IS signal t0,t1,t2,t3 : std_logic_vector(7 downto 0); signal addtmp0,addtmp1 : std_logic_vector(8 downto 0); B

13、EGIN process(clk) begin if(clkevent and clk=1) 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 IS PORT(clk : in std_logic; a0,a1,a2,a3 : i

14、n std_logic_vector(7 downto 0); yout : out std_logic_vector(9 downto 0); END pipeadd; ARCHITECTURE pipelining_arch OF pipeadd IS signal t0,t1,t2,t3 : std_logic_vector(7 downto 0); signal addtmp0,addtmp1 : std_logic_vector(8 downto 0); BEGIN process(clk) begin if(clkevent and clk=1) then t0 = a0; t1

15、= a1; t2 = a2; t3 = a3; end if; end process; process(clk) begin if(clkevent and clk = 1) then addtmp0 = 0,11.2 速度優(yōu)化,KX康芯科技,11.2.2 寄存器配平,圖11-8 不合理的結(jié)構(gòu),11.2 速度優(yōu)化,KX康芯科技,11.2.2 寄存器配平,圖11-9 寄存器配平的結(jié)構(gòu),11.2 速度優(yōu)化,KX康芯科技,11.2.3 關(guān)鍵路徑法,圖11-10 關(guān)鍵路徑示意,11.3 優(yōu)化設(shè)置與時(shí)序分析,KX康芯科技,11.3.1 Settings設(shè)置,11.3.2 HDL版本設(shè)置及Analysi

16、s USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY SINGT IS PORT ( CLK : IN STD_LOGIC; DOUT : OUT INTEGER RANGE 255 DOWNTO 0 ); END; ARCHITECTURE DACC OF SINGT IS SIGNAL Q : INTEGER RANGE 63 DOWNTO 0 ; SIGNAL D : INTEGER RANGE 255 DOWNTO 0 ; BEGIN PROCESS(CLK) BEGIN IF CLKEVENT A

17、ND CLK = 1 THEN IF Q 63 THEN Q = Q + 1; ELSE Q = 0 ; END IF; END IF; END PROCESS; PROCESS(Q) BEGIN CASE Q IS (接下頁(yè)),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 ;

18、END;,11.3 優(yōu)化設(shè)置與時(shí)序分析,11.3.9 適配優(yōu)化設(shè)置示例,圖11-19 針對(duì)工程選擇Locate in Assignment Editor,KX康芯科技,11.3 優(yōu)化設(shè)置與時(shí)序分析,11.3.9 適配優(yōu)化設(shè)置示例,圖11-20 選用乘積項(xiàng)邏輯優(yōu)化,KX康芯科技,11.3 優(yōu)化設(shè)置與時(shí)序分析,11.3.9 適配優(yōu)化設(shè)置示例,圖11-21在floorplan中可以看到使用了32個(gè)ESB,KX康芯科技,11.3 優(yōu)化設(shè)置與時(shí)序分析,11.3.9 適配優(yōu)化設(shè)置示例,圖11-22使用了乘積項(xiàng)的編譯報(bào)告,KX康芯科技,11.3 優(yōu)化設(shè)置與時(shí)序分析,11.3.10 Slow Slew Rat

19、e設(shè)置,圖11-23 Slow Slew Rate選擇,KX康芯科技,11.3 優(yōu)化設(shè)置與時(shí)序分析,11.3.11 LogicLock優(yōu)化技術(shù),KX康芯科技,大規(guī)模系統(tǒng)開發(fā)中,應(yīng)用邏輯鎖定技術(shù)可以優(yōu)化設(shè)計(jì),合理分配硬件資料,提高系統(tǒng)的工作速度和可靠性。QuartusII支持邏輯鎖定技術(shù)的FPGA器件系列有APEX20K、APEXII、Excalibur、Cyclone/II和Stratix/II等。,11.4 Chip Editor應(yīng)用,11.4.1 Chip Editor應(yīng)用實(shí)例,KX康芯科技,圖9-24 最左側(cè)是CNT4B占用的LAB,11.4 Chip Editor應(yīng)用,11.4.1 C

20、hip Editor應(yīng)用實(shí)例,KX康芯科技,9-25 放大后的LAB分布,11.4 Chip Editor應(yīng)用,11.4.1 Chip Editor應(yīng)用實(shí)例,圖11-26 被占用的LAB 圖11-27 LAB中被占用的5個(gè)LCs,11.4 Chip Editor應(yīng)用,11.4.1 Chip Editor應(yīng)用實(shí)例,KX康芯科技,圖11-28 Resource Property Editor的門級(jí)原理圖編輯窗,11.4 Chip Editor應(yīng)用,11.4.1 Chip Editor應(yīng)用實(shí)例,KX康芯科技,圖11-29 的時(shí)序分析報(bào)告窗圖,11.4 Chip Editor應(yīng)用,11.4.2 Chi

21、p Editor功能說(shuō)明,KX康芯科技,圖9-30 打開Netlist Explorer窗,11.4 Chip Editor應(yīng)用,11.4.2 Chip Editor功能說(shuō)明,KX康芯科技,圖11-31 打開屬性和端口連接窗,11.4 Chip Editor應(yīng)用,11.4.3 利用Change Manager檢測(cè)底層邏輯,KX康芯科技,圖11-32 打開Change Manager窗,習(xí) 題,KX康芯科技,11-1利用資源共享的面積優(yōu)化方法對(duì)下面程序進(jìn)行優(yōu)化(僅要求在面積上優(yōu)化)。習(xí)題程序如下:,【例11-10】 LIBRARY ieee; USE ieee.std_logic_1164.al

22、l; USE ieee.std_logic_unsigned.all; USE ieee.std_logic_arith.all; ENTITY addmux IS 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 BEGIN process(A,B,C,D,sel) begin if(sel = 0) then Result = A +

23、B; else Result = C + D; end if; end process; END rtl;,習(xí) 題,KX康芯科技,11-2試通過(guò)優(yōu)化邏輯的方式對(duì)圖11-33中所示的結(jié)構(gòu)進(jìn)行改進(jìn),給出VHDL代碼和結(jié)構(gòu)圖。,圖11-33 習(xí)題11-2圖,習(xí) 題,KX康芯科技,11-3已知4階直接型FIR濾波器節(jié)的數(shù)學(xué)表達(dá)式如下: 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是延遲關(guān)系,m表示延遲的clk數(shù)。x(n-m)與h(m)的位寬均為8位,y(n)為10位,其中h(m)在模塊例化后為常數(shù)。該模塊的輸入為x(n

24、)、clk,輸出為y(n),試實(shí)現(xiàn)該邏輯。 11-4對(duì)習(xí)題11-3中的FIR濾波器節(jié)在速度上進(jìn)行優(yōu)化(在h(m)固定的情況下),試采用流水線技術(shù)。 11-5利用FPGA的LUT結(jié)構(gòu),構(gòu)建資源占用較小的常數(shù)乘法器,改進(jìn)習(xí)題11-3、11-4的設(shè)計(jì),減少模塊的資源使用。 11-6若對(duì)速度要求不高,但目標(biāo)芯片的容量較小,試把習(xí)題11-3中的FIR濾波器用串行化的方式實(shí)現(xiàn)。,習(xí) 題,KX康芯科技,11-7設(shè)計(jì)一個(gè)連續(xù)乘法器,輸入為a0,a1,a2,a3,位寬各為8位,輸出rout為32位,完成rout=a0*a1*a2*a3,試實(shí)現(xiàn)之。 11-8對(duì)11-7進(jìn)行優(yōu)化,判斷以下實(shí)現(xiàn)方法,那種方法更好? r

25、out=(a0*a1)*a2)*a3 rout=(a0*a1)*(a2*a3) 11-9為提高速度,對(duì)習(xí)題11-8中的前一種方法加上流水線技術(shù)進(jìn)行實(shí)現(xiàn)。 11-10試對(duì)以上的習(xí)題解答通過(guò)設(shè)置QuartusII相關(guān)選項(xiàng)的方式,提高速度,減小面積。,實(shí) 驗(yàn) 與 設(shè) 計(jì),KX康芯科技,11-1 采用流水線技術(shù)設(shè)計(jì)高速數(shù)字相關(guān)器 (1) 實(shí)驗(yàn)?zāi)康模涸O(shè)計(jì)一個(gè)在數(shù)字通信系統(tǒng)中常見的數(shù)字相關(guān)器,并利用流水線技術(shù)提高其工作速度,對(duì)其進(jìn)行仿真和硬件測(cè)試。 (2) 實(shí)驗(yàn)原理:數(shù)字相關(guān)器用于檢測(cè)等長(zhǎng)度的兩個(gè)數(shù)字序列間相等的位數(shù),實(shí)現(xiàn)序列間的相關(guān)運(yùn)算。 一位相關(guān)器,即異或門,異或的結(jié)果可以表示兩個(gè)1位數(shù)據(jù)的相關(guān)程度。

26、異或?yàn)?表示數(shù)據(jù)位相同;異或?yàn)?表示數(shù)據(jù)位不同。多位數(shù)字相關(guān)器可以由多個(gè)一位相關(guān)器構(gòu)成,如N位的數(shù)字相關(guān)器由N個(gè)異或門和N個(gè)1位相關(guān)結(jié)果統(tǒng)計(jì)電路構(gòu)成。 (3) 實(shí)驗(yàn)內(nèi)容1:根據(jù)上述原理設(shè)計(jì)一個(gè)并行4位數(shù)字相關(guān)器(例9-17是示例程序)。 提示:利用CASE語(yǔ)句完成4個(gè)1位相關(guān)結(jié)果的統(tǒng)計(jì)。,實(shí) 驗(yàn) 與 設(shè) 計(jì),KX康芯科技,11-1 采用流水線技術(shù)設(shè)計(jì)高速數(shù)字相關(guān)器,【例11-11】 stemp c c c c c c = 000; END CASE; END PROCESS;,實(shí) 驗(yàn) 與 設(shè) 計(jì),KX康芯科技,11-1 采用流水線技術(shù)設(shè)計(jì)高速數(shù)字相關(guān)器 (4) 實(shí)驗(yàn)內(nèi)容2:利用實(shí)驗(yàn)內(nèi)容1中的4

27、位數(shù)字相關(guān)器設(shè)計(jì)并行16位數(shù)字相關(guān)器。使用QuartusII估計(jì)最大延時(shí),并計(jì)算可能運(yùn)行的最高頻率。 (5) 實(shí)驗(yàn)內(nèi)容3:在以上實(shí)驗(yàn)的基礎(chǔ)上,利用設(shè)計(jì)完成的4位數(shù)字相關(guān)器設(shè)計(jì)并行16位數(shù)字相關(guān)器,其結(jié)構(gòu)框圖可參考圖11-33,并利用QuartusII計(jì)算運(yùn)行速度。 (6) 實(shí)驗(yàn)內(nèi)容4:上面的16位數(shù)字相關(guān)器是用3級(jí)組合邏輯實(shí)現(xiàn)的,在實(shí)際使用時(shí),對(duì)其有高速的要求,試使用流水線技術(shù)改善其運(yùn)行速度。在輸入、輸出及每一級(jí)組合邏輯的結(jié)果處加入流水線寄存器,提高速度,可參照本章內(nèi)容進(jìn)行設(shè)計(jì)。 (7) 實(shí)驗(yàn)思考題:考慮采用流水線后的運(yùn)行速度與時(shí)鐘clock的關(guān)系,測(cè)定輸出與輸入的總延遲。若輸入序列是串行化的

28、,數(shù)字相關(guān)器的結(jié)構(gòu)如何設(shè)計(jì)?如何利用流水線技術(shù)提高其運(yùn)行速度? (8) 實(shí)驗(yàn)報(bào)告:根據(jù)以上的實(shí)驗(yàn)內(nèi)容寫出實(shí)驗(yàn)報(bào)告,包括設(shè)計(jì)原理、程序設(shè)計(jì)、程序分析、仿真分析、硬件測(cè)試和詳細(xì)實(shí)驗(yàn)過(guò)程。,實(shí) 驗(yàn) 與 設(shè) 計(jì),KX康芯科技,11-2 線性反饋移位寄存器設(shè)計(jì) (1) 實(shí)驗(yàn)?zāi)康模簩W(xué)習(xí)用VHDL設(shè)計(jì)LFSR,掌握利用FPGA的特殊結(jié)構(gòu)中高效實(shí)現(xiàn)LFSR的方法。 (2) 實(shí)驗(yàn)原理:LFSR即Linear Feedback Shift Register 線性反饋移位寄存器,是一種十分有用的時(shí)序邏輯結(jié)構(gòu),廣泛用于偽隨機(jī)序列發(fā)生、可編程分頻器、CRC校驗(yàn)碼生成、PN碼等等。圖11-34是典型的LFSR結(jié)構(gòu)。由圖中

29、可以看出LFSR由移位寄存器加上xor構(gòu)成,不同的xor決定了不同的生成多項(xiàng)式。圖11-34中的生成多項(xiàng)式為X3+X2+X0。 (3) 實(shí)驗(yàn)內(nèi)容:依據(jù)圖11-34設(shè)計(jì)一個(gè)LFSR,其生成多項(xiàng)式為X4+X3+X0。試在FPGA上加以實(shí)現(xiàn),并利用本章中提及的QuartusII優(yōu)化選項(xiàng),使之達(dá)到最高運(yùn)行速度,并在GW48 EDA開發(fā)系統(tǒng)上,對(duì)其產(chǎn)生的碼序列進(jìn)行觀察。,實(shí) 驗(yàn) 與 設(shè) 計(jì),KX康芯科技,11-2 線性反饋移位寄存器設(shè)計(jì) (4) 實(shí)驗(yàn)思考題1:另有一種LFSR的結(jié)構(gòu),見圖11-35,試分析與圖11-34中LFSR結(jié)構(gòu)的異同點(diǎn)。 (5) 實(shí)驗(yàn)思考題2:對(duì)圖11-35結(jié)構(gòu)的LFSR電路進(jìn)行改

30、進(jìn),設(shè)計(jì)成串行CRC校驗(yàn)碼發(fā)生器(提示:反饋線上加入xor,xor的一個(gè)輸入端接待編碼串行有效信息輸入)。 (6) 實(shí)驗(yàn)報(bào)告:作出本項(xiàng)實(shí)驗(yàn)設(shè)計(jì)的完整電路圖,詳細(xì)說(shuō)明其工作原理,完成測(cè)試實(shí)驗(yàn)內(nèi)容,對(duì)實(shí)驗(yàn)中的碼序列進(jìn)行記錄,寫出電路可達(dá)到的最高運(yùn)行速度及設(shè)置的QuartusII選項(xiàng)。,實(shí) 驗(yàn) 與 設(shè) 計(jì),KX康芯科技,11-2 線性反饋移位寄存器設(shè)計(jì),圖11-34 LFSR舉例,實(shí) 驗(yàn) 與 設(shè) 計(jì),KX康芯科技,11-2 線性反饋移位寄存器設(shè)計(jì),圖11-35 另一種LFSR結(jié)構(gòu),實(shí) 驗(yàn) 與 設(shè) 計(jì),KX康芯科技,11-3 直接數(shù)字式頻率合成器(DDS)設(shè)計(jì)實(shí)驗(yàn) (1) 實(shí)驗(yàn)?zāi)康模簩W(xué)習(xí)利用EDA技術(shù)

31、和FPGA實(shí)現(xiàn)直接數(shù)字頻率綜合器DDS的設(shè)計(jì)。 (2) 實(shí)驗(yàn)原理:直接數(shù)字頻率綜合技術(shù),即DDS技術(shù),是一種新型的頻率合成技術(shù)和信號(hào)產(chǎn)生方法。其電路系統(tǒng)具有較高的頻率分辨率,可以實(shí)現(xiàn)快速的頻率切換,并且在改變時(shí)能夠保持相位的連續(xù),很容易實(shí)現(xiàn)頻率、相位和幅度的數(shù)控調(diào)制。,fSIN = M(fclk/2n) 11-1,實(shí) 驗(yàn) 與 設(shè) 計(jì),KX康芯科技,11-3 直接數(shù)字式頻率合成器(DDS)設(shè)計(jì)實(shí)驗(yàn),圖11-36 DDS基本結(jié)構(gòu),實(shí) 驗(yàn) 與 設(shè) 計(jì),KX康芯科技,11-3 直接數(shù)字式頻率合成器(DDS)設(shè)計(jì)實(shí)驗(yàn),圖11-37 相位累加器位寬和采樣點(diǎn)關(guān)系,實(shí) 驗(yàn) 與 設(shè) 計(jì),KX康芯科技,11-3

32、直接數(shù)字式頻率合成器(DDS)設(shè)計(jì)實(shí)驗(yàn),【例11-12】 LIBRARY ieee; -波形數(shù)據(jù)ROM USE ieee.std_logic_1164.all; LIBRARY altera_mf; USE altera_mf.altera_mf_components.all; ENTITY data_rom IS PORT (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

33、= ./data/LUT10X10.mif, -波形數(shù)據(jù)初始化文件路徑 lpm_hint = ENABLE_RUNTIME_MOD=YES, INSTANCE_NAME=rom2, . . . END;,實(shí) 驗(yàn) 與 設(shè) 計(jì),KX康芯科技,11-3 直接數(shù)字式頻率合成器(DDS)設(shè)計(jì)實(shí)驗(yàn),【例11-13】 LIBRARY IEEE; -32位加法器模塊 USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY ADDER32B IS PORT ( A : IN STD_LOGIC_VECTOR(31 DOWNTO 0

34、); B : IN STD_LOGIC_VECTOR(31 DOWNTO 0); S : OUT STD_LOGIC_VECTOR(31 DOWNTO 0) ); END ADDER32B; ARCHITECTURE behav OF ADDER32B IS BEGIN S = A + B; END behav;,實(shí) 驗(yàn) 與 設(shè) 計(jì),KX康芯科技,11-3 直接數(shù)字式頻率合成器(DDS)設(shè)計(jì)實(shí)驗(yàn),【例11-14】-32位寄存器模塊 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY REG32B IS PORT ( Load : IN STD_L

35、OGIC; DIN : IN STD_LOGIC_VECTOR(31 DOWNTO 0); DOUT : OUT STD_LOGIC_VECTOR(31 DOWNTO 0) ); END REG32B; ARCHITECTURE behav OF REG32B IS BEGIN PROCESS(Load, DIN) BEGIN IF LoadEVENT AND Load = 1 THEN - 時(shí)鐘到來(lái)時(shí),鎖存輸入數(shù)據(jù) DOUT = DIN; END IF; END PROCESS; END behav;,實(shí) 驗(yàn) 與 設(shè) 計(jì),KX康芯科技,11-3 直接數(shù)字式頻率合成器(DDS)設(shè)計(jì)實(shí)驗(yàn),【例1

36、1-15】rom_data.mif 10位正弦波數(shù)據(jù)文件,讀者可用MATLAB/DSP Builder生成 WIDTH=10; DEPTH=1024; ADDRESS_RADIX=DEC; DATA_RADIX=DEC; CONTENT BEGIN 0 : 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; . . . . . .(略去部分?jǐn)?shù)據(jù)) 1018 : 493; 101

37、9 : 496; 1020 : 499; 1021 : 502; 1022 : 505; 1023 : 508; END;,實(shí) 驗(yàn) 與 設(shè) 計(jì),KX康芯科技,11-3 直接數(shù)字式頻率合成器(DDS)設(shè)計(jì)實(shí)驗(yàn),圖11-38 DDS.vhd頂層原理圖,實(shí) 驗(yàn) 與 設(shè) 計(jì),KX康芯科技,11-3 直接數(shù)字式頻率合成器(DDS)設(shè)計(jì)實(shí)驗(yàn),圖11-39 DDS.vhd仿真波形,實(shí) 驗(yàn) 與 設(shè) 計(jì),KX康芯科技,11-3 直接數(shù)字式頻率合成器(DDS)設(shè)計(jì)實(shí)驗(yàn) (3) 實(shí)驗(yàn)內(nèi)容1:詳細(xì)述敘DDS的工作原理,依據(jù)例11-12至例11-15完成仿真,并由仿真結(jié)果進(jìn)一步說(shuō)明DDS的原理。完成編譯和下載。選擇模式

38、1;鍵2、鍵1輸入8位頻率字FWORD;利用GW48系統(tǒng)ADDA板上的10位D/A5651輸出波形,用示波器觀察輸出波形。 (4) 實(shí)驗(yàn)內(nèi)容2:根據(jù)圖11-36,在原設(shè)計(jì)(圖11-38)中加入相位控制電路,用鍵4、鍵3輸入8位相位字PWORD;重復(fù)實(shí)驗(yàn)1的內(nèi)容。 (5) 實(shí)驗(yàn)內(nèi)容3:將圖11-38的頂層原理圖表述為VHDL,重復(fù)實(shí)驗(yàn)1的內(nèi)容。 (6) 實(shí)驗(yàn)內(nèi)容4:在圖11-38的設(shè)計(jì)中增加一些元件,設(shè)計(jì)成掃頻信號(hào)源,掃頻速率、掃頻頻域、掃頻步幅可設(shè)置。,實(shí) 驗(yàn) 與 設(shè) 計(jì),KX康芯科技,11-3 直接數(shù)字式頻率合成器(DDS)設(shè)計(jì)實(shí)驗(yàn) (7) 實(shí)驗(yàn)內(nèi)容5:例11-12后的程序?qū)?2位頻率字和1

39、0位相位字作了截?cái)啵际?位。如果不作截?cái)?,修改其中的程序,并設(shè)法在GW48實(shí)驗(yàn)系統(tǒng)上完成實(shí)驗(yàn)(提示,增加2個(gè)鎖存器與單片機(jī)通信)。 (8) 實(shí)驗(yàn)內(nèi)容6:將上例改成頻率可數(shù)控的正交信號(hào)發(fā)生器,即使電路輸出兩路信號(hào),且相互正交,一路為正弦(sin)信號(hào),一路為余弦(cos)信號(hào)(此電路可用于正交方式的信號(hào)調(diào)制解調(diào))。 (9) 實(shí)驗(yàn)內(nèi)容7:利用上例設(shè)計(jì)一個(gè)FSK信號(hào)發(fā)生器,并硬件實(shí)現(xiàn)之。 (10) 思考題:如果不作截?cái)啵死念l率精度和相位精度分別是多少?,實(shí) 驗(yàn) 與 設(shè) 計(jì),KX康芯科技,11-4 基于DDS的數(shù)字移相信號(hào)發(fā)生器設(shè)計(jì)實(shí)驗(yàn) (1) 實(shí)驗(yàn)原理:移相信號(hào)發(fā)生器是2003年大學(xué)生電子設(shè)計(jì)

40、競(jìng)賽題中的一個(gè)設(shè)計(jì)項(xiàng)目。圖11-40是基于DDS模型的數(shù)字移相信號(hào)發(fā)生器的電路模型圖,示例程序如例11-16所示。 (2)實(shí)驗(yàn)內(nèi)容1:完成10位輸出數(shù)據(jù)寬度的移相信號(hào)發(fā)生器的設(shè)計(jì),其中包括設(shè)計(jì)正弦波形數(shù)據(jù)MIF文件(數(shù)據(jù)深度1024、數(shù)據(jù)類型是十進(jìn)制數(shù));給出仿真波形。最后進(jìn)行硬件測(cè)試,對(duì)于GW48系統(tǒng),推薦選擇模式1:CLK接clock0,接13MHz;用鍵4、3控制相位字PWORD輸入,鍵2、1控制頻率字FWORD輸入。觀察它們的圖形和李薩如圖形。 (3)實(shí)驗(yàn)內(nèi)容2:修改設(shè)計(jì),增加幅度控制電路(如可以用一乘法器控制輸出幅度)。 (4)實(shí)驗(yàn)內(nèi)容3:將此信號(hào)發(fā)生器改成具有掃頻功能的波形發(fā)生器,

41、掃速可數(shù)控,點(diǎn)頻掃頻可控。 (5)實(shí)驗(yàn)思考題:如果頻率控制字寬度直接用32位,相位控制字寬度直接用10位,輸出仍為10位,時(shí)鐘為20MHz,計(jì)算頻率、相位和幅度三者分別的步進(jìn)精度是多少,給出輸出頻率的上下限。 (6)實(shí)驗(yàn)報(bào)告:根據(jù)以上的實(shí)驗(yàn)要求、實(shí)驗(yàn)內(nèi)容和實(shí)驗(yàn)思考題寫出實(shí)驗(yàn)報(bào)告。,實(shí) 驗(yàn) 與 設(shè) 計(jì),KX康芯科技,圖11-40 數(shù)字移相信號(hào)發(fā)生器電路模型圖,實(shí) 驗(yàn) 與 設(shè) 計(jì),KX康芯科技,【例11-16】數(shù)字移相信號(hào)發(fā)生器頂層設(shè)計(jì)文件,元件連接結(jié)構(gòu)參考圖11-40。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_U

42、NSIGNED.ALL; ENTITY DDS_VHDL IS - 頂層設(shè)計(jì) PORT ( CLK : IN STD_LOGIC; -系統(tǒng)時(shí)鐘 FWORD : IN STD_LOGIC_VECTOR(7 DOWNTO 0); -頻率控制字 PWORD : IN STD_LOGIC_VECTOR(7 DOWNTO 0); -相位控制字 FOUT : OUT STD_LOGIC_VECTOR(9 DOWNTO 0); -可移相正弦信號(hào)輸出 POUT : OUT STD_LOGIC_VECTOR(9 DOWNTO 0) ); -參考信號(hào)輸出 END; ARCHITECTURE one OF DDS_

43、VHDL IS COMPONENT REG32B -32位鎖存器 PORT ( LOAD : IN STD_LOGIC; DIN : IN STD_LOGIC_VECTOR(31 DOWNTO 0); DOUT : OUT STD_LOGIC_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

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論