【正文】
其次就是對(duì) FIR 濾波器知識(shí)方面的,雖然大三學(xué)過數(shù)字信號(hào)處理,但那時(shí)老師只是講了一些基本知識(shí),由于這部分知識(shí)很抽象,難度很大,所以當(dāng)時(shí)也沒學(xué)好,經(jīng)過這次課設(shè),我又從新翻閱了以前的課本??偟膩碚f有以下幾點(diǎn) 。但總體來說這次設(shè)計(jì)還是成功的。 34 圖 544 用 conv函數(shù)后結(jié)果圖 截成高十位輸出結(jié)果如圖 545 所示 圖 545 截成高十位輸出結(jié)果 由以上仿真結(jié)果對(duì)比可知,在截短前的濾波器輸出和 matlab 卷積乘結(jié)果完全一致,濾波器功能完好。其中 clk 和 rst 信號(hào)采用了總線名稱的連接方式。 程序編譯后就可進(jìn)行仿真,仿真結(jié)果如圖 540 所示: 圖 540 乘 499 電路結(jié)果仿真圖 由上圖可知,與預(yù)期相符,即設(shè)計(jì)正確,再將其生成為一個(gè)元件以便后來調(diào)用,其生成圖如圖 541 所示 。 END PROCESS。 THEN Dout=s5。EVENT AND clk=39。 END PROCESS。s4(10 DOWNTO 0))。s2(13 DOWNTO 0))(1111111amp。amp。 ELSE s5=(39。s3(12 DOWNTO 0))(000000000amp。s1(18 downto 0))(000000amp。039。039。 s4=Din。 s3=Dinamp。 s2=Dinamp。 30 BEGIN A1:PROCESS(Din,s1,s2,s3,s4) BEGIN s1=Dinamp。 SIGNAL s4 : SIGNED (10 DOWNTO 0)。 SIGNAL s2 : SIGNED (13 DOWNTO 0)。 END mult499。 Din : IN SIGNED (10 DOWNTO 0)。 USE 。 圖 539 乘 401 電路元件圖 ⑻ 乘 499 電路設(shè)計(jì): 由分析可寫出如下程序: LIBRARY ieee。 END mult401。 END IF。139。 A2: PROCESS(clk,s5) BEGIN IF clk39。 END IF。s3(14 DOWNTO 0))+(111111111amp。s1(18 downto 0))(11amp。139。s4(10 DOWNTO 0))。s2(17 DOWNTO 0))+(00000amp。amp。) THEN s5=(39。 IF (Din(10)=39。0000。0000000。000000000。 SIGNAL s5 : SIGNED (19 DOWNTO 0)。 SIGNAL s3 : SIGNED (14 DOWNTO 0)。 ARCHITECTURE mult401 OF mult401 IS SIGNAL s1 : SIGNED (19 DOWNTO 0)。 Dout : OUT SIGNED (19 DOWNTO 0))。 ENTITY mult401 IS 29 PORT( clk : IN STD_LOGIC。 USE 。 程序編譯后就可進(jìn)行仿真,仿真結(jié)果如圖 536所示: 圖 536 乘 239 電路結(jié)果仿真圖 由上圖可知,與預(yù)期相符,即設(shè)計(jì)正確,再將其生成為一個(gè)元件以便后來調(diào)用,其生成圖如圖 537 所示 。 END PROCESS。 THEN Dout=s4。EVENT AND clk=39。 END PROCESS。s3(10 DOWNTO 0))。s1(17 downto 0))(1111amp。139。s3(10 DOWNTO 0))。s1(17 downto 0))(0000amp。039。039。 s3=Din。 s2=Dinamp。 BEGIN A1:PROCESS(Din,s1,s2,s3) BEGIN s1=Dinamp。 SIGNAL s3 : SIGNED (10 DOWNTO 0)。 ARCHITECTURE mult239 OF mult239 IS SIGNAL s1 : SIGNED (18 DOWNTO 0)。 Dout : OUT SIGNED (18 DOWNTO 0))。 ENTITY mult239 IS PORT( clk : IN STD_LOGIC。 USE 。 程序編譯后就可進(jìn)行仿真,仿真結(jié)果如圖 534 所示: 圖 534 乘 70 電路結(jié)果仿真圖 由上圖可知,與預(yù)期相符,即設(shè)計(jì)正確,再將其生成為一個(gè)元件以便后來調(diào)用,其生成圖如圖 535 所示 。 END PROCESS。 THEN Dout=s4。EVENT AND clk=39。 END PROCESS。s3(11 DOWNTO 0))。s1(16 downto 0))+(11111amp。139。s3(11 DOWNTO 0))。s1(16 downto 0))+(00000amp。039。039。039。 s3=Dinamp。 s2=Dinamp。 BEGIN A1:PROCESS(Din,s1,s2,s3) BEGIN s1=Dinamp。 SIGNAL s3 : SIGNED (11 DOWNTO 0)。 ARCHITECTURE mult70 OF mult70 IS SIGNAL s1 : SIGNED (16 DOWNTO 0)。 Dout : OUT SIGNED (17 DOWNTO 0))。 ENTITY mult70 IS PORT( clk : IN STD_LOGIC。 USE 。 程序編譯后就可進(jìn)行仿真,仿真結(jié)果如圖 532所示: 圖 532 乘 54 電路結(jié)果仿真圖 由上圖可知,與預(yù)期相符,即設(shè)計(jì)正確,再將其生成為一個(gè)元件以便后來調(diào)用,其生成圖如圖 533 所示 。 END PROCESS。 THEN Dout=s4。EVENT AND clk=39。 END PROCESS。s3(11 DOWNTO 0))。s1(15 downto 0))(11amp。139。s3(11 DOWNTO 0))。s1(15 downto 0))(00amp。039。039。039。 s3=Dinamp。 s2=Dinamp。 BEGIN A1:PROCESS(Din,s1,s2,s3) BEGIN s1=Dinamp。 SIGNAL s3 : SIGNED (11 DOWNTO 0)。 ARCHITECTURE mult54 OF mult54 IS SIGNAL s1 : SIGNED (16 DOWNTO 0)。 Dout : OUT SIGNED (16 DOWNTO 0))。 ENTITY mult54 IS PORT( clk : IN STD_LOGIC。 USE 。 程序編譯后就可進(jìn)行仿真,仿真結(jié)果如圖 530所示: 圖 530 乘 106電路結(jié)果仿真圖 由上圖可知,與預(yù)期相符,即設(shè)計(jì)正確,再將其生成為一個(gè)元件以便后來調(diào)用,其生成圖如圖 531 所示 。 END PROCESS。 THEN Dout=s5。EVENT AND clk=39。 END PROCESS。s4(11 DOWNTO 0))。s2(15 DOWNTO 0))+(1111amp。amp。 ELSE s5=(39。s3(13 DOWNTO 0))+(000000amp。s1(16 downto 0))+(00amp。039。039。039。 s4=Dinamp。 s3=Dinamp。 s2=Dinamp。 BEGIN A1:PROCESS(Din,s1,s2,s3,s4) BEGIN s1=Dinamp。 SIGNAL s4 : SIGNED (11 DOWNTO 0)。 SIGNAL s2 : SIGNED (15 DOWNTO 0)。 END mult106。 Din : IN SIGNED (10 DOWNTO 0)。 USE 。 25 圖 529 乘 88 電路元件圖 ⑶乘 106 電路設(shè)計(jì): 由分析可寫出如下程序: LIBRARY ieee。 END mult88。 END IF。139。 A2: PROCESS(clk,s4) BEGIN IF clk39。 END IF。s2(14 DOWNTO 0))+(1111amp。amp。 ELSE s4=(39。s2(14 DOWNTO 0))+(0000amp。amp。) THEN s4=(39。 IF (Din(10)=39。 s3=Dinamp。 s2=Dinamp。 BEGIN A1:PROCESS(Din,s1,s2,s3) BEGIN s1=Dinamp。 SIGNAL s3 : SIGNED (13 DOWNTO 0)。 ARCHITECTURE mult88 OF mult88 IS SIGNAL s1 : SIGNED (16 DOWNTO 0)。 Dout : OUT SIGNED (17 DOWNTO 0))。 ENTITY mult88 IS PORT( clk : IN STD_LOGIC。 USE 。 程序編譯后就可進(jìn)行仿真,仿真結(jié)果如圖 526 所示: 圖 526 乘 31電路結(jié)果仿真圖 由上圖可知,與預(yù)期相符,即設(shè)計(jì)正確,再將其生成為一個(gè)元件以便后來調(diào)用,其生成圖如圖 527 所示 。 END PROCESS。 THEN Dout=s3。EVENT AND clk=39。 END PROCESS。s2(10 DOWNTO 0))。amp。 ELSE s3=(39。s1(14 downto 0))(00000amp。039。039。 s2=Din。 BEGIN A1:PROCESS(Din,s1,s2,s3) BEGIN s1=Dinamp。 SIGNAL s2 : SIGNED (10 DOWNTO 0)。 END mult31。 Din : IN SIGNED (10 DOWNTO 0)。 USE 。具體如下: ⑴乘 31 電路設(shè)計(jì): 由分析可寫出如下程序: LIBRARY ieee。算法:其中帶負(fù)號(hào)數(shù)先乘去負(fù)號(hào)的整數(shù)部分,在后面的求和中做減法運(yùn)算。將常系數(shù)分 23 解成幾個(gè) 2的冪的和形式,然后再分別進(jìn)行運(yùn)算。當(dāng)?shù)竭_(dá)時(shí)鐘上升沿時(shí),將兩數(shù)輸入,運(yùn)算并輸出結(jié)果。 程序編譯后就可進(jìn)行仿真,仿真結(jié)果如圖 524 所示: 圖 524 106 和 54 的減法器結(jié)果仿真圖 由上圖可知,與預(yù)期相符,即設(shè)計(jì)正確,再將其生成為一個(gè)元件以便后來調(diào)用,其生成圖如圖 525 所示 。 END PROCESS。 THEN Dout=s2Din1s1。event and clk=39。)。 SIGNAL s2: signed(18 downto 0):=(OTHERS=39。 ARCHITECTURE sub1065417 of jian10654 IS SIGNAL s1: signed(17 downto 0):=(Din2(16)amp。 Dout :out signed(18 downto 0))。 Din1 :in signed (17 downto 0)。 USE 。 22 圖 523 31 和 88 的減法器元件圖 ⑵ 106 和 54 的減法器的設(shè)計(jì): 由分析可寫出如下程序: LIBRARY ieee。 END sub318817。 END IF。139。 BEGIN PROCESS(Din1,Din2,clk) BEGIN IF clk39。039。Din1)。 ARCHITECTURE sub318817 of jian3188 IS SIGNAL s1: signed(17 downto 0):=(Din1(15)amp。 Dout :out signed(18 downto 0))。 Din1 :in signed (15 downto 0)。 USE 。 ⑴ 31 和 88 的減法器設(shè)計(jì): 由分析可寫出如下程序: LIBRARY ieee。 注 意: 31 和 88的乘結(jié)果都只包含了乘系數(shù)