交通工程学院
EDA实验设计报告
.
姓名:郭衡
班级:电科1704 学号:17419002064 指导老师:谭会生
实验四 FIR滤波器的设计
1,实验目的
(1)学习Quartus 2软件的基本使用方法。
(2)学习GW48系列或其他EDA实验开发系统的基本使用方法。 (3)学习VHDL程序的基本结构和基本语句的使用。 2,实验内容
设计并调试好一个滤波器长度为4的DaubechiesDB4转置FIR滤波器,并用 EDA实验开发系统进行硬件验证。 3,实验条件
(1)开发软件:Quartus 2 8.0.
(2)实验设备:GW48系列EDA实验开发系统。 (3)拟用芯片:EPM7128S—PL84. 4, 实验设计
1)系统原理框图
图1.1 FIR电路原理图 2)VHDL程序
计数器CNT9999的底层和顶层电路均采用VHDL文本输入,有关VHDL程序如下。 LPM的VHDL源程序: LIBRARY LPM;
USE LPM.LPM_COMPONENTS.ALL; LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY FIR IS
GENERIC(W1:INTEGER:=9; --输入位宽
W2:INTEGER:=18; --乘法器的位宽为2*W1 W3:INTEGER:=19; --加法器的位宽为W2+LOG2(L)-1 W4:INTEGER:=11; --输出位宽
L:INTEGER:=4; --滤波器的长度 MPIPE:INTEGER:=3); --流水线的级数 PORT(CLK:IN STD_LOGIC; LOAD_X:IN STD_LOGIC; X_IN:IN STD_LOGIC_VECTOR(W1-1 DOWNTO 0); C_IN:IN STD_LOGIC_VECTOR(W1-1 DOWNTO 0); Y_OUT:OUT STD_LOGIC_VECTOR(W4-1 DOWNTO 0)); END ENTITY FIR;
ARCHITECTURE ART OF FIR IS
SUBTYPE N1BIT IS STD_LOGIC_VECTOR(W1-1 DOWNTO 0); SUBTYPE N2BIT IS STD_LOGIC_VECTOR(W2-1 DOWNTO 0); SUBTYPE N3BIT IS STD_LOGIC_VECTOR(W3-1 DOWNTO 0); TYPE ARRAY_N1BIT IS ARRAY(0 TO L-1) OF N1BIT; TYPE ARRAY_N2BIT IS ARRAY(0 TO L-1) OF N2BIT; TYPE ARRAY_N3BIT IS ARRAY(0 TO L-1) OF N3BIT; SIGNAL X:N1BIT; SIGNAL Y:N3BIT;
SIGNAL C:ARRAY_N1BIT; --系数矩阵 SIGNAL P:ARRAY_N2BIT; --积矩阵
SIGNAL A:ARRAY_N3BIT; --加法矩阵 BEGIN
LOAD:PROCESS IS --装载数据或系数 BEGIN
WAIT UNTIL CLK='1'; IF(LOAD_X='0') THEN
C(L-1)<=C_IN; --在寄存器存储系数 FOR I IN L-2 DOWNTO 0 LOOP --系数右移一位 C(I)<=C(I+1); END LOOP; ELSE
X<=X_IN; --同时获得一个采样数据 END IF;
END PROCESS LOAD;
SOP:PROCESS(CLK)IS --进行乘加运算 BEGIN
IF CLK'EVENT AND (CLK='1')THEN
FOR I IN 0 TO L-2 LOOP --计数转置滤波器的加法
A(I)<=(P(I)(W2-1)&P(I))+A(I+1); --加法运算后可能产生进位,古扩展1位P(I)(W2-1) END LOOP;
A(L-1)<=P(L-1)(W2-1)&P(L-1); --第一级轴头只有一个寄存器 END IF; Y<=A(0);
END PROCESS SOP;
--例化L个流水线乘法器
实验四之eda实验
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)