文档库 最新最全的文档下载
当前位置:文档库 › EDA技术QuartusⅡ实验讲义

EDA技术QuartusⅡ实验讲义

EDA技术QuartusⅡ实验讲义
EDA技术QuartusⅡ实验讲义

EDA技术实验讲义(含GW48系列EDA实验开发系统详细使用说明)

韶关学院信息科学与技术实验室

【实验1】简单组合电路的设计

(1)实验目的;熟悉QuartusⅡ的Verilog HDL文本设计流程全过程,学习简单组合电路的设计、多层次电路设计、仿真和硬件测试。

(2)实验内容1:首先按照第11章给出的步骤,利用QuartusⅡ完成2选1多路选择器的文本编辑输入(mux21a.v)和仿真测试等步骤,给出(mux21a.v)的仿真波形。最后在实验系统上进行硬件测试,实际验证本项设计的功能。

【实验1程序1】

module mux21a (a, b, s, y);

input a,b,s;

output y;

reg y;

always @(a or b or s)

begin

if (s==1'b0)

begin

y<=a;

end

else

begin

y<=b;

end

end

endmodule

(3)实验内容2:完成多路选择器,把mux21a看成是一个元件,利用元件例化模块语句描述,并将此文件放在同一目录E:\muxfile中.以下是参考程序:

【实验1程序2】

module MUXK (a1, a2, a3, s0, s1, outy);

input a1, a2, a3, s0, s1;

output outy;

wire outy;

wire tmp;

mux21a u1 (.a(a2),.b(a3),.s(s0),.y(tmp));

mux21a u2 (.a (a1),.b (tmp),.s (s1),.y (outy));

Endmodule

按第11章的步骤对上例分别进行编译、综合、仿真.并对其仿真波形图1作出分析说明。

图1 仿真波形

(4)实验内容3:引脚锁定以及硬件下载测试。若目标器件是EPM7128SLC84-15,选实验电路模式5,用键1(PIO0,引脚号为4)控制s0:用键2(PIO1,引脚号为5)控制s1:a3、a2和a1分别接clock5(引脚号为75)、clock0(引脚号为2)和clock2(引脚号为70);输出信号outy仍接扬声器Spker(引脚号为81)。通过短路帽选择clock0接256Hz信号,clock5接1024Hz,clock2接8Hz信号。引脚锁定窗如图2所示。最后进行编译、下载和硬件测试实验。

(5)实验报告:根据以上的实验内容写出实验报告,包括程序设计、软件编译、仿真分析、硬件测试和详细实验过程;给出程序分析报告、仿真波形图及其分析报告。

实验1引脚锁定图

【实验2】简单时序电路的设计

设计含异步清零和同步时钟使能的加法计数器

(1)实验目的:学习计数器的设计、仿真和硬件测试,进一步熟悉Verilog HDL设计技术。

(2)实验原理:实验程序为2,实验原理参考8.3.5节。

(3)实验内容1,按第11章的步骤,在QuartusⅡ上对本设计进行编辑、编译、综合、适配、仿真。说明例中各语句的作用,详细描述示例的功能特点,给出其所有信号的时序仿真波形。

(4)实验内容2:引脚锁定以及硬件下载测试,若目标器件是EPM7128SLC84-15。建议选实验电路模式5,用键8(PIO7、引脚号为12)控制RST;用键7(PIO6、引脚号为11)控制EN;计数

溢出COUT接发光管D8(PIO15、引脚号为24);CQ是计数输出,接数码1(PIO19-PIO16,低位靠右、引脚号为29、28、27、25);时钟CLK接clock2(引脚号为70),通过跳线选择4Hz信号。引脚锁定后进行编译、下载和硬件测试实验。将实验过程和实验结果写进实验报告。(5)实验报告:将实验原理、设计过程、编译仿真波形和分析结果、硬件测试实验结果写进实验报告。

实验2引脚锁定图

【实验2程序】

module CNT10 (CLK, RST, EN, CQ, COUT);

input CLK,RST,EN;

output[3:0] CQ;

output COUT;

reg[3:0] CQ,CQI;

reg COUT;

always @(posedge CLK)//检测时钟上升沿

begin : u1

if (RST == 1'b1)//计数器复位

begin

CQI={4{1'b0}};

end

begin

if(EN==1'b1)//检测是否允许计数

begin

if (CQI<9)

begin

CQI=CQI+1; //允许计数

end

else

begin

CQI={4{1'b0}}; //大于9,计数值清零

end

end

end

if (CQI==9)

begin

COUT<=1'b1 ; //计数大于9,输出进位信号

end

else

begin

COUT<=1'b0 ;

end

CQ<=CQI ; //将计数值向端口输出

end

endmodule

【实验3】用状态机对ADC0809的采样控制电路实现

(1)实验目的;学习用状态机对A/D转换器ADC0809的采样控制电路的实现。

(2)实验原理:ADC0809的采样控制原理参考有关的详细说明。

ADC0809是CMOS的8位A/D转换器,片内有8路模拟开关,可控制8个模拟量中的一个进入转换器中。ADC0809的精度为8位,转换时间约100μs,含锁存控制的8路多路开关,输出有三态缓冲器控制,单5V电源供电。

主要控制信号说明,如图所示,START是转换启动信号,高电平有效,ALE是3位通道选择地址(ADDC、ADDB、ADDA)信号的锁存信号。当模拟量送至某一输入端(如IN1或IN2等),由3位地址信号选择,而地址信号由ALE锁存;EOC是转换情况状态信号,当启动转换约100μs后,EOC产生一个负脉冲,以示转换结束:在EOC的上升沿后,若使输出使能信号OE为高电平,则控制打开三态缓冲器,把转换好的8位数据结果输至数据总线。至此ADC0809的一次转换结束。

图 ADC0809工作时序

(3)实验内容:利用QuartusⅡ对ADC0809进行Verilog HDL文本编辑输入和仿真测试;给出仿真波形。最后进行引脚锁定并进行测试,硬件验证电路对ADC0809的控制功能。

测试步骤:建议选择实验电路模式5由对应的电路图可见,ADC0809的转换时钟CLK已经事先接有750kHs的频率,引脚锁定为:START接PIO34、引脚号为49,OE(ENABLE)接PIO35、引脚号为50, EOC接PIO8、引脚号为15,ALE接PIO33、引脚号为48,状态机时钟CLK接clock0、引脚号为2,ADDA接PIO32、引脚号为46(ADDB和ADDC都接GND),ADC0809的8位输出数据线接PIO23~PIO16、引脚号为34、33、31、30、29、28、27、25,锁存输出Q显示于数码8/数码7(PIO47~PIO40、引脚号为65、64、63、61、60、58、57、56),

实验操作:将GW48-CK系统,左下角选择插针处的“转换结束”和“A/D使能”用跳线帽短接。下载ADC0809中的ADCINT.pof到实验板的目标器件EPM7128SLC84-15中;clock0的短路帽接可选12Hz、6MHz、65536Hz等频率;按动一次右侧的复位键;用螺丝刀旋转GW48系统左下角的电位器,以便为ADC0809提供变化的待测模拟信号(注意,这时必须在程序中的赋值:ADDA<=’1’,这样就能通过实验系统左下角的AIN1输入端与电位器相接,并将信号输入ADC0809的IN1)。这时数码管8和7将显示ADC0809采样输出并被锁存的数字值(16进制),数据来自EPM7128SLC84-15的输出。数码管2和1也将显示同样数据,此数据直接来自ADC0809的数据口。

(4)实验报告:根据以上的实验要求和实验内容写出实验报告。

【实验3程序】

module ADCINT (D,CLK,EOC,ALE,START,OE,ADDA,LOCK0,Q);

input[7:0] D;

input CLK,EOC; //CLK是转换工作时钟

output ALE,START,OE,ADDA,LOCK0;

output[7:0] Q; //0809的8位转换数据输出

reg ALE,START,OE,LOCK;

reg[2:0] current_state,next_state;

reg[7:0] REGL;

wire ADDA,LOCK0;

wire[7:0] Q;

parameter[2:0] st0 = 0; //定义各状态子类型

parameter[2:0] st1 = 1;

parameter[2:0] st2 = 2;

parameter[2:0] st3 = 3;

parameter[2:0] st4 = 4;

initial

begin

current_state<=st0;

next_state<=st0;

end

assign ADDA=1'b1,Q=REGL,LOCK0=LOCK ;//LOCK转换后数据输出锁存时钟信号

//模拟信号进入0809通道0;当ADDA <='1',则进入通道1 always @(current_state or EOC)

begin : COM

case(current_state) //规定各状态转换方式

st0 : //0809初始化

begin

ALE<=1'b0 ;

START<=1'b0 ;

LOCK<=1'b0 ;

OE<=1'b0 ;

next_state<=st1 ;

end

st1 : //启动采样

begin

ALE<=1'b1 ;

START<=1'b1 ;

LOCK<=1'b0 ;

OE<=1'b0 ;

next_state<=st2 ;

end

st2 : //测试EOC的下降沿begin

ALE<=1'b0 ;

START<=1'b0 ;

LOCK<=1'b0 ;

OE<=1'b0 ;

if(EOC==1'b1)

begin

next_state<=st3 ;

end

else

begin

next_state <= st2 ;

end

end

st3 :

begin

ALE<=1'b0 ;

START<=1'b0 ;

LOCK<=1'b0 ;

OE<=1'b1 ;

next_state <= st4 ;

end

st4 : //测试EOC的上升沿,=1表明转换结束begin

ALE<=1'b0 ;

START<=1'b0 ;

LOCK<=1'b1 ;

OE<=1'b1 ;

next_state<= st0 ;

end

default :

begin

next_state<= st0 ;

end

endcase

end

always @(posedge CLK)

begin : REG

current_state<=next_state ; //在时钟上升沿,转换至下一状态

end

always @(posedge LOCK) //此进程中,在LOCK的上升沿,将转换好的数据锁入begin : LATCH1

REGL <= D ;

end

endmodule

实验3引脚锁定图

VS (PIO44)

HS (PIO43)B (PIO42)G (PIO41)R (PIO40)

GND

PIO45

PIO46513

PS/2接口

VCC

J7

4接PC 机

串行通讯接口

接口电路

单片机接口电路

2

35RS-232B412MHZA

复位P34

P33

P32

X1

X2

P31

P30

P35

RST GND

1

2

3

4

56

7

8

9

10

VCC

PIO11

PIO12PIO13PIO14AT89C2051

EU3P37P10P11P12P13P14P15P16P17VCC 11121314151617181920

PIO15PIO24PIO25PIO26PIO27PIO28PIO29PIO30PIO31

7.2K P29->A14)

27512(PIN30->VCC,PIN3->A15,PIN29->WE)628128(PIN30->VCC,PIN3->A14,RAM/ROM

P29->WE)62256(PIN30->VCC,PIN3->A14,6264(PIN30->VCC,PIN29->WR)

PIN30->A17,PIN3->A15,PIN29->A14)29C040(PIN31->WE,PIN1->A18,PIN3->A15,PIN29->A14)27040(PIN31->A18,PIN30->A17,PIN29->A14)27020(PIN30->A17,PIN3->A15,P29->A14)27010(PIN30->VCC,PIN3->A15,R78 200

R77 200R76 200

10

5487

6

14

13321 视频接口VGA J6A18/A19A18/A15/WE PIO49VCC SLA17RAM_EN

VCC GND

SLRAM

PIO26PIO25PIO24PIO32PIO33PIO34PIO35PIO36PIO37PIO38PIO39PIO14PIO47PIO10PIO48PIO9PIO46PIO45PIO11PIO12PIO13PIO8PIO15PIO31PIO30PIO29PIO28PIO27

32

313029282726252423222120191817

16

151413121110987654321VCC GND

2708027040270202701027512272562764628128622566264VCC

A17/VCC WR/A14

A13A8A9A11OE A10CS1D7D6D5

D4D3GND

D2D1D0A0A1A2A3A4A5A6A7A12A14(A15)A16

10K VCC

VR1PIO31

PIO29PIO30PIO28PIO27PIO26PIO25PIO2413

1415164D7

D6D5D4D35D26D1D07PIO37

+5

JP2

51pFC27

JP2(COMP)

COMP LM311VCC

10K -12

+1248

23TL082/1

AIN0

AOUT

102

103

5.1K

R72765TL082/2

8

4

1

+12

-12

滤波0滤波1

FIT

COMM

EU2DAC0832

1181710

32WR1

FB

9

3

211IOUT1IOUT2

12/CS WR2XFER A GND D GND

VREF

8

VCC 20VCC

JP2(1/2,3/4)

D1PIO8

D2D3D4D5D6D7D8PIO9

PIO10

PIO11

PIO12

PIO15

PIO14

PIO13

实验电路结构图

NO.5

S P E A K E R

扬声器

FPGA/CPLD 目标芯片1

2

3

4

5

6

7

8

D16D15D14D13D12D11D10D9

PIO47-PIO44

PIO43-PIO40PIO39-PIO36PIO35-PIO32PIO31-PIO28PIO27-PIO24PIO23-PIO20PIO19-PIO16

译码器译码器译码器译码器译码器译码器译码器

译码器PIO15-PIO8PIO0

PIO1PIO2PIO3PIO4PIO5PIO6PIO7键1

键2键3键4键5键6键7键8P I O 8J P 2(5/6)P I O 8

(23)(24)1216272610C L O C K 750K H Z A F I T

102

C 30103

C 29P I O 37

P I O 35

C O M M

C O M P

A D E O C A D E N

J P 2

20

1816141210864219

1715131197531

021+5V A I N 0A I N 1r e f (-)r e f (+)I N -1I N -0692225717

1415818192021E U 1A D C 0809P I O 16

P I O 17P I O 18P I O 19P I O 20P I O 21P I O 22P I O 23P I O 32

P I O 33P I O 35

P I O 34

m s b 2-1

2-22-32-42-52-62-7l s b 2-8E O C A D D -A A D D -B A D D -C A L E E N A B L E S T A R T

供参考实验报告范例

下面以1位二进制全加器的设计为例,给出一个实验报告范例,以供参考。

实验X 1位二进制全加器的设计

1. 实验目的

(1) 学习ispEXPERT软件的基本使用方法。

(2) 学习GW48-CK EDA实验开发系统的基本使用方法。

(3) 了解VHDL程序的基本结构。

2. 实验内容

设计并调试好一个1位二进制全加器,并用GW48-CK EDA实验开发系统(拟采用的实验芯片的型号可为ispLSI1032E PLCC-84或EPF10K10LC84-3或XCS05/XL PLCC84)进行系统仿真、硬件验证。设计1位二进制全加器时要求先用基本门电路设计一个1位二进制半加器,再由基本门电路及1位二进制半加器构成全加器。

3. 实验条件

(1) 开发软件:Lattice ispEXPERT。

(2) 实验设备:GW48-CK EDA实验开发系统。

(3) 拟用芯片:ispLSI1032E PLCC-84。

4. 实验设计

1) 系统的原理框图

根据数字电子技术的知识,1位二进制全加器可以由两个1位的半加器构成,而1位半加器可以由如图7.1所示的门电路构成。由两个1位的半加器构成的全加器如图7.2所示。

图7.1 1位半加器逻辑原理图

图7.2 1 位全加器逻辑原理图

2) VHDL源程序

--或门的逻辑描述

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY OR2 IS

PORT(A,B:IN STD_LOGIC

C:OUT STD_LOGIC);

END ENTITY OR2;

ARCHITECTURE ART1 OF OR2 IS

BEGIN

C<=A OR B;

END ARCHITECTURE ART1;

--半加器的逻辑描述

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY H_ADDER IS

PORT(A,B:IN STD_LOGIC;

SO ,CO:OUT STD_LOGIC);

END ENTITY H_ADDER;

ARCHITECTURE ART2 OF H_ADDER IS BEGIN

SO<=(A OR B) AND (A NAND B);

CO<=NOT (A NAND B);

END ARCHITECTURE ART2;

--全加器的逻辑描述

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY F_ADDER IS

PORT(AIN,BIN,CIN:IN STD_LOGIC;SUM ,COUT:OUT STDLOGIC);

END ENTITY F_ADDER IS

ARCHITECTURE ART3 OF F_ADDER IS COMPONENT H_ADDER

PORT(A,B:IN STD_LOGIC;

SO,CO:OUT STD_LOGIC);

END COMPONENT H_ADDER;

COMPONENT OR2 IS

PORT(A,B:IN STD_LOGIC;

C:OUT STD_LOGIC);

END COMPONENT OR2;

SIGNAL S1,S2,S3:STD_LOGIC;

BEGIN

U1:H_ADDER PORT MAP(A=>AIN,B=>BIN,CO=>S1,SO=>S2);U2:H_ADDER PORT MAP(A=>S2,B=>CIN,SO=>SUM,CO=>S3);U3:OR2 PORT MAP(A=>S1,B=>S3,C=>COUT);

END ARCHITECTURE ART3;

3) 波形仿真文件

用于波形仿真的ABEL测试文件F_ADDER.ABV如下:

MODULE F_ADDER;

AIN,BIN,CIN,SUM,COUT PIN;

X=.X.;

TEST_VECTORS

([AIN,BIN,CIN]->[SUM,COUT]);

[0,0,0]->[X,X];

[0,0,1]->[X,X];

[0,1,0]->[X,X];

[0,1,1]->[X,X];

[1,0,0]->[X,X];

[1,0,1]->[X,X];

[1,1,0]->[X,X];

[1,1,1]->[X,X];

END;

4) 管脚锁定文件

管脚锁定文件F_ADDER.PPN的设计过程如表7.1所示。

表7.1 F_ADDER.PPN的设计过程

验证设备:GW48-CK;实验芯片:ispLSI1032E-70LJ84;实验模式:NO.5 ;模式图及管脚对应表见图5.10,表5.3

根据表7.1,可得到管脚锁定文件F_ADDER.PPN如下:

//F_ADDER.PPN

//PART:ispLSI1032E-70LJ84

//FORMAT:PINNAME PINTYPE LOCK

AIN IN 26

BIN IN 27

CIN IN 28

SUM OUT 34

COUT OUT 35

5. 实验结果及总结

1) 系统仿真情况

系统功能仿真结果与时序仿真结果分别如图7.3、7.4所示。

图7.3 系统功能仿真结果

图7.4 系统时序仿真结果

从系统仿真结果(本仿真结果可通过同时按下“ALT+Print Screen”键抓取当前屏幕信息放入剪贴板中,再在WORD等文档中通过粘贴的方法获得)可以看出,本系统完全符合设计要求。同时从系统时序仿真结果可以看出,从输入到输出有一定的延时,在20 ns左右,这正是器件延时特性的反映。

2) 硬件验证情况

AIN接键1,BIN接键2,CIN接键3,SUM接发光二极管D1,COUT接发光二极管D2,一位二进制全加器的硬件验证结果表如表7.2所示。从实验结果可以看出,本系统完全符合设计要求。

表7.2 F_ADDER的硬件验证结果

3) 实验过程中出现的问题及解决办法

经过源程序的编辑和编译、逻辑综合、逻辑适配、编程下载成功后,在EDA实验开发系统进行实验时却发现实验结果不对。

相关文档