VLSIWord格式文档下载.docx

上传人:b****4 文档编号:18486774 上传时间:2022-12-17 格式:DOCX 页数:19 大小:263.94KB
下载 相关 举报
VLSIWord格式文档下载.docx_第1页
第1页 / 共19页
VLSIWord格式文档下载.docx_第2页
第2页 / 共19页
VLSIWord格式文档下载.docx_第3页
第3页 / 共19页
VLSIWord格式文档下载.docx_第4页
第4页 / 共19页
VLSIWord格式文档下载.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

VLSIWord格式文档下载.docx

《VLSIWord格式文档下载.docx》由会员分享,可在线阅读,更多相关《VLSIWord格式文档下载.docx(19页珍藏版)》请在冰豆网上搜索。

VLSIWord格式文档下载.docx

ONE:

=1);

--1BITFORCARRYREG.

PORT(X,Y:

INSTD_LOGIC_VECTOR(WIDTH-1DOWNTO0);

--INPUTS

SUM:

OUTSTD_LOGIC_VECTOR(WIDTH-1DOWNTO0);

--RESULT

CLK:

INSTD_LOGIC);

ENDADD_1P;

ARCHITECTUREFLEXOFADD_1PIS

SIGNALL1,L2,R1,Q1--LSBSOFINPUTS

:

STD_LOGIC_VECTOR(WIDTH1-1DOWNTO0);

SIGNALL3,L4,R2,Q2,U2,H2--MSBSOFINPUTS

STD_LOGIC_VECTOR(WIDTH2-1DOWNTO0);

SIGNALS:

STD_LOGIC_VECTOR(WIDTH-1DOWNTO0);

--OUTPUTREGISTER

SIGNALCR1,CQ1:

STD_LOGIC_VECTOR(ONE-1DOWNTO0);

--LSBSCARRYSIGNAL

BEGIN

PROCESS--SPLITINMSBSANDLSBSANDSTOREINREGISTERS

BEGIN

WAITUNTILCLK='

1'

;

--SPLITLSBSFROMINPUTX,Y

FORKINWIDTH1-1DOWNTO0LOOP

L1(K)<

=X(K);

L2(K)<

=Y(K);

ENDLOOP;

--SPLITMSBSFROMINPUTX,Y

FORKINWIDTH2-1DOWNTO0LOOP

L3(K)<

=X(K+WIDTH1);

L4(K)<

=Y(K+WIDTH1);

ENDPROCESS;

--------------FIRSTSTAGEOFTHEADDER------------------

ADD_1:

LPM_ADD_SUB--ADDLSBSOFXANDY

GENERICMAP(LPM_WIDTH=>

WIDTH1,

LPM_REPRESENTATION=>

"

UNSIGNED"

LPM_DIRECTION=>

ADD"

PORTMAP(DATAA=>

L1,DATAB=>

L2,

RESULT=>

R1,COUT=>

CR1(0));

REG_1:

LPM_FF--SAVELSBSOFX+YANDCARRY

WIDTH1)

PORTMAP(DATA=>

R1,Q=>

Q1,CLOCK=>

CLK);

REG_2:

LPM_FF

ONE)

CR1,Q=>

CQ1,CLOCK=>

ADD_2:

LPM_ADD_SUB--ADDMSBSOFXANDY

WIDTH2,

PORTMAP(DATAA=>

L3,DATAB=>

L4,RESULT=>

R2);

REG_3:

LPM_FF--SAVEMSBSOFX+Y

WIDTH2)

R2,Q=>

Q2,CLOCK=>

------------SECONDSTAGEOFTHEADDER--------------------

--ONEOPERANDISZERO

H2<

=(OTHERS=>

'

0'

);

--ADDRESULTFROMMSBS(X+Y)ANDCARRYFROMLSBS

ADD_3:

LPM_ADD_SUB

PORTMAP(CIN=>

CQ1(0),DATAA=>

Q2,

DATAB=>

H2,RESULT=>

U2);

PROCESS--BUILDASINGLEREGISTEREDOUTPUT

BEGIN--WORDOFWIDTH=WIDTH1+WIDTH2

FORKINWIDTH1-1DOWNTO0LOOP

S(K)<

=Q1(K);

FORKINWIDTH2-1DOWNTO0LOOP

S(K+WIDTH1)<

=U2(K);

SUM<

=S;

--CONNECTSTOOUTPUTPINS

ENDFLEX;

六、实验步骤

1.系统体系结构及主要功能电路的设计。

2.各种VHDL源程序的设计。

3.源程序的编辑和编译。

4.逻辑综合和逻辑适配。

5.系统主要模块仿真和系统总体仿真以及有关结果分析

七、实验报告

图1实验一的时序图

图2实验一的RTL图

仿真结果分析

如图1中2+5=7,4+10=14,6+15=21……,但是值得注意的是7在经过3个延时后出现,分析图2可见,数据进来的时候先经过一个触发器,但来一个有效的脉冲的时候数据才能送过去,当经过寄存器1,2,3时又有一个延时,最后经过最后一个触发器的时候,又来一个有效的脉冲才能将数据送过去,故经过三个周期后才出现相加后的数值。

实验二可编程FIR滤波器的设计与实现

研究探索性实验

熟悉实现可编程FIR滤波器的VLSI结构设计思想和所采用的结构设计优化技术,并进一步熟悉有关硬件描述语言的编程和EDA软件的使用。

完成一个可编程FIR滤波器的FPGA设计与实现,包括系统结构设计、硬件语言逻辑描述,再进行程序调试、仿真分析等。

三、实验基本原理

转置结构的FIR滤波器如图2.1所示,该滤波器的优点在不再需要给x[n]提供额外的移位寄存器,而且也没有必要为达到高通过量给乘积的加法器(树)添加额外的流水线级。

图2.1转置结构的FIR滤波器

根据图2.1所示的转置FIR滤波器的原理,完成一个滤波器长度为4的可编程转置FIR滤波器的FPGA设计与实现,具体包括:

其中系统的仿真与分析,选用DaubechiesDB4滤波器,该滤波器的系数为G(Z)=0.48301+0.8365Z-1+0.2241Z-2-0.1294Z-3。

若将系数成8位(加上符号位)精度模式,则G(Z)=124/256+214Z-1/256+57Z-2/256-33Z-3/256。

这时需注意变换后的结果要除以256才是实际的输出。

--THISISAGENERICFIRFILTERGENERATOR

--ITUSESW1BITDATA/COEFFICIENTSBITS

--USINGPREDEFINEDPACKAGES

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYFIR_GENIS------>

INTERFACE

GENERIC(W1:

=9;

--INPUTBITWIDTH

W2:

=18;

--MULTIPLIERBITWIDTH2*W1

W3:

=19;

--ADDERWIDTH=W2+LOG2(L)-1

W4:

=11;

--OUTPUTBITWIDTH

L:

=4;

--FILTERLENGTH

MPIPE:

=3--PIPELINESTEPSOFMULTIPLIER

);

PORT(CLK:

INSTD_LOGIC;

LOAD_X:

X_IN:

INSTD_LOGIC_VECTOR(W1-1DOWNTO0);

C_IN:

Y_OUT:

OUTSTD_LOGIC_VECTOR(W4-1DOWNTO0));

ENDFIR_GEN;

ARCHITECTUREFLEXOFFIR_GENIS

SUBTYPEN1BITISSTD_LOGIC_VECTOR(W1-1DOWNTO0);

SUBTYPEN2BITISSTD_LOGIC_VECTOR(W2-1DOWNTO0);

SUBTYPEN3BITISSTD_LOGIC_VECTOR(W3-1DOWNTO0);

TYPEARRAY_N1BITISARRAY(0TOL-1)OFN1BIT;

TYPEARRAY_N2BITISARRAY(0TOL-1)OFN2BIT;

TYPEARRAY_N3BITISARRAY(0TOL-1)OFN3BIT;

SIGNALX:

N1BIT;

SIGNALY:

N3BIT;

SIGNALC:

ARRAY_N1BIT;

--COEFFICIENTARRAY

SIGNALP:

ARRAY_N2BIT;

--PRODUCTARRAY

SIGNALA:

ARRAY_N3BIT;

--ADDERARRAY

BEGIN

LOAD:

PROCESS------>

LOADDATAORCOEFFICIENT

IF(LOAD_X='

)THEN

C(L-1)<

=C_IN;

--STORECOEFFICIENTINREGISTER

FORIINL-2DOWNTO0LOOP--COEFFICIENTSSHIFTONE

C(I)<

=C(I+1);

ELSE

X<

=X_IN;

--GETONEDATASAMPLEATATIME

ENDIF;

ENDPROCESSLOAD;

SOP:

PROCESS(CLK)------>

COMPUTESUM-OF-PRODUCTS

IFCLK'

EVENTAND(CLK='

FORIIN0TOL-2LOOP--COMPUTETHETRANSPOSED

A(I)<

=(P(I)(W2-1)&

P(I))+A(I+1);

--FILTERADDS

A(L-1)<

=P(L-1)(W2-1)&

P(L-1);

--FIRSTTAPHAS

--ONLYAREGISTER

Y<

=A(0);

ENDPROCESSSOP;

--INSTANTIATELPIPELINEDMULTIPLIER

MULGEN:

FORIIN0TOL-1GENERATE

MULS:

LPM_MULT--MULTIPLYP(I)=C(I)*X;

GENERICMAP(LPM_WIDTHA=>

W1,LPM_WIDTHB=>

W1,

LPM_PIPELINE=>

MPIPE,

SIGNED"

LPM_WIDTHP=>

W2,

LPM_WIDTHS=>

W2)

PORTMAP(CLOCK=>

CLK,DATAA=>

X,

C(I),RESULT=>

P(I));

ENDGENERATE;

Y_OUT<

=Y(W3-1DOWNTOW3-W4);

5.系统主要模块仿真和系统总体仿真以及有关结果分析。

图3实验二的时序图

 

图4实验二的RTL图

以图3为例,

Y(0)=124/256X(0)=124/256*100=48;

Y

(1)=124/256*X

(1)+214/256*X(0)=124/256*150+214/256*100=156;

Y

(2)=124/256*X

(2)+214/256*X

(1)+57/256*X(0)=124/256*200+214/256*150+57/25*100

=244;

Y(3)=124/256*X(3)+214/256*X

(2)+57/256*X

(1)-33/256*X(0)=124/256*250+214/256*200+57/256*150-33/256*100=308

实验三FFT的旋转因子乘法器、蝶形处理器的设计与实现

研究探索性实验。

熟悉实现FFT的旋转因子乘法器、蝶形处理器的VLSI结构设计思想和所采用的结构设计优化技术,并进一步熟悉有关硬件描述语言的编程和EDA软件的使用。

完成实现FFT的旋转因子乘法器、蝶形处理器的FPGA设计与实现,包括系统结构设计、硬件语言逻辑描述,再进行程序调试、仿真分析等。

FFT方法是信号处理领域核心的算法之一,广泛应用于雷达处理、观测,定时定位处理,数字通信、无线通讯、声纳、图像处理等领域。

radix-2FFT可以用蝶形处理器有效的实现,这种处理器除了蝶形本身外,还包括额外的旋转因子复数乘法器。

radix-2蝶形处理器由一个复数加法器、一个复数减法器和一个旋转因子的复数乘法器组成。

旋转因子的复数乘法器通常由4次实数乘法和2次加/减法运算实现。

但是也可3次实数乘法和3次加/减法运算实现,具体算法如下:

高效复数乘法器算法:

复数旋转因子乘法R+jI=(X+jY)(C+jS)=CX-SY+j(SX+CY)=[(C-S)*Y+C*(X-Y)]+j[(C+S)*X-C*(X-Y)],令E=X-Y,Z=C*E=C*(X-Y),则R=(C-S)*Y+Z,I=(C+S)*X-Z,由于C、C+S和C-S可以预先计算并存储,因此先计算E,Z,然后再计算R、I计算最后的乘积。

为了防止运算中的溢出,蝶形处理器需要计算两个蝶形方程:

Dre+jDim=((Are+jAim)+Bre+jBim))/2;

Ere+jEim=((Are+jAim)-Bre+jBim))/2;

临时结果Ere+jEim必须乘以旋转因子。

完成实现FFT的旋转因子乘法器、蝶形处理器的FPGA设计与实现。

--旋转因子乘法器的VHDL程序

ENTITYCCMULIS

GENERIC(W2:

=17;

--MULTIPLIERBITWIDTH

W1:

--BITWIDTHC+SSUM

W:

=8);

--INPUTBITWIDTH

PORT(CLK:

STD_LOGIC;

--CLOCKFORTHEOUTPUTREGISTER

X_IN,Y_IN,C_IN--INPUTS

INSTD_LOGIC_VECTOR(W-1DOWNTO0);

CPS_IN,CMS_IN--INPUTS

R_OUT,I_OUT--RESULTS

OUTSTD_LOGIC_VECTOR(W-1DOWNTO0));

ENDCCMUL;

ARCHITECTUREFLEXOFCCMULIS

SIGNALX,Y,C:

STD_LOGIC_VECTOR(W-1DOWNTO0);

--INPUTSANDOUTPUTS

SIGNALR,I,CMSY,CPSX,XMYC--PRODUCTS

STD_LOGIC_VECTOR(W2-1DOWNTO0);

SIGNALXMY,CPS,CMS,SXTX,SXTY--X-YETC.

STD_LOGIC_VECTOR(W1-1DOWNTO0);

--X

=Y_IN;

--J*Y

C<

--COS

CPS<

=CPS_IN;

--COS+SIN

CMS<

=CMS_IN;

--COS-SIN

PROCESS

WAITUNTILCLK='

R_OUT<

=R(W2-3DOWNTOW-1);

--SCALINGANDFF

I_OUT<

=I(W2-3DOWNTOW-1);

--FOROUTPUT

----------CCMULWITH3MUL.AND3ADD/SUB---------------

SXTX<

=X(X'

HIGH)&

X;

--POSSIBLEGROWTHFOR

SXTY<

=Y(Y'

Y;

--SUB_1->

SIGNEXTENSION

SUB_1:

LPM_ADD_SUB--SUB:

X-Y;

W1,LPM_DIRECTION=>

SUB"

SXTX,DATAB=>

SXTY,RESULT=>

XMY);

MUL_1:

LPM_MULT--MULTIPLY(X-Y)*C=XMYC

W,

W2,LPM_WIDTHS=>

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

当前位置:首页 > 医药卫生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1