EDA实验指导书2013(学生)

更新时间:2023-03-08 08:53:10 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

五、KHF-5型 CPLD/FPGA实验开发系统

(一)、系统概述

实验箱由主板和下载板组成,能够满足工科院校开设CPLD/FPGA课程的实验需要,同时也可用作CPLD/FPGA应用系统。编辑方式有图形编辑,文本编辑,波形编辑,混合编辑等方式, 硬件描述语言有AHDL,VHDL,Verilog-HDL等语言。

配有模拟可编程器件ispPAC器件系列,突破传统的EDA实验箱一般只做数字电路实验的模式,用户可以在实验箱上通过模拟可编程器件进行模拟电子的开发训练。实验箱配有10个数码管,(包括6个并行扫描数码管和4个串行扫描数码管

)。16个数据开关,4个脉冲开关,数据开关和脉冲开关可配合使用,也可单独使用。 A/D转换,采用双A/D转换,有常规的8位A/D转换器ADC0809,还可以配置位数较高,速度较快的12位A/D转换器MAX196。D/A转换器,采用高速DA芯片0800。通用小键盘,本实验箱提供16个微动开关(4X4),可方便的进行人机交互。具有单片机扩展槽,由于实验箱上的所有资源(如数码管、数据开关、小键盘等)都可以借用,因此通过此扩展槽可以开发单片机及单片机接口实验。 外围扩展口,为了便于开发,本实验箱还预留一个40PIN的扩展槽,用以与外围电路的联接。下载板采用CPLD/FPGA芯片,具有芯片集成度高、内部资源丰富、用户可用引脚多等显著优点,不易出现芯片内部资源尚有空余而芯片引脚已用完的情况。CPLD/FPGA下载板上包含断电芯片功能保持功能,并带有COM1、COM2、COM3、COM4四个50脚的插针,使下载板易于与主板连接起来。下载板上也可作为应用板使用。本实验装置在PC机上还配有一个专用下载程序(CPLDDN4),供用户下载程序。当串行通信电缆分别与下载板和PC机相连后,通过此界面可以实现在MAX+PLUS下编写的电路(如图形、波形、AHDL语言、VHDL语言编写的电路)进行下载、写EEPROM和读EEPROM。具有VGA接口、USB接口、PS/2接口、语音接口。实验箱配有128×64字符型液晶屏一块。

(二)、硬件结构及原理图

本实验箱由实验板和下载板两部分组成。下载板可以和主板配合完成数字电路及CPLD/FPGA的各种开发和实验,也可以单独做实际应用的应用板。且具有模拟可编程下载板、VGA/PS2接口板、USB接口板、点阵显示板。

1.时钟源

14VCCP183_CLKVCCOUT图1-20 50MHz信号源JZ A850M GNDGND1

本实验箱CPLD/FPGA芯片由50MHz晶振提供振荡频率,接至P183管脚。为了方便操作,还为系统提供了约1Hz—1MHz连续可调的时钟信号,接至CPLD/ FP GA 的P78脚,通过调节短路夹J1和J2来改变其输出频率值。22.1184MHz的时钟信号接于CPLD/FPGA的80脚(P80)。 12U19C5U19A1U19B2401063401064401066P78_IN172 GNVCCDVCC D147R24470J1JUMPER2W3470K13 CW2C2310.1uFJ2JUMPER11C24

10uF 图1-21 可调信号源 2.输入开关 本实验箱中有16个数据开关(SW1——SW16),4个脉冲开关(KP1——KP4)。在通常状态下数据开关和脉冲开关为低电平。数据开关和脉冲开关可配合使用,也可单独使用。若二者配合使用,在数据开关为低电平时,按下脉冲开关则产生一个高电平脉冲;在数据开关为高电平时,按下脉冲开关则产生一个低电平脉冲。 其中16个数据开关与CPLD/FPGA的管脚的连接情况依次为:SW1-P103,SW2-P104,SW3-P111,SW4-P112,SW5-P113,SW6-P1114,SW7-P115,SW8-P116,SW9-P119,ABSW10-P120,SW11-P121,SW12-P122,SW13-P125,SW14-P126,SW15-P127,SW16-P128。122212CPLD/FPGA相应引脚相连的还有316个LED发光二极管,4同时与数据开关和可以作为输出使用。在作为输出时,不论数据开关和脉冲开关为高电平还是低电平,均不影响其状态。 VCCS1R1S2R29GNDU17A1RKP1A4.7kU23S0R0S1R1S2R2S3R3ENGNDVCC162nQ1D74HC04U17BVCC3Q02Q174HC04Q19Q25Q210Q374HC04Q31Q4974HC0484nQ24367121114155S1R1S2R2S3R3S4R412345678U17C6nQ33S12KP11R1VCC2KP23S21R2S3R3S4R4 VCCU17D8nQ4C3S32KP31R3VCC2KP43S4VCC1R4 4043 图1-22 脉冲开关 脉冲开关(KP1——KP4)与CPLD/FPGA的管脚的连接情况依次为P103, P10 4 , P111, P112与数据开关SW1—SW4复用CPLD/FPGA管脚。脉冲开关经RS触发器去抖动之后,便可实现在数据开关为高电平时产生一个负脉冲,在数据开关为低电平时产生一个正脉冲。此电路适合作计数器,暂存器的脉冲输入。 3.数码管显示 本实验箱有10个数码管(SEG1——SEG10),采用共阴极8段LED显示。其中SEG1——SEG2采用静态显示方式,SEG3——SEG10采用动态扫描显示方式。 数码管SEG1——SEG10与CPLD/FPGA的对应管脚接法为: TitleANumberRevisionBSizeA4Date:File:21-Aug-2004I:\\CPLD-5N\\cpld.ddbSheet of Drawn By:4123 D seg1eseg1d10seg1aseg1bseg1fseg1cseg1p9876seg1gP169。 SGND5P174,P175,P176,P177,P179。 SGND6NumberSGND7SGND8P161(D4),P162(D5),P163,P164(D6),P166(D7),P167,P168,P169, P170, P172, P173, 极管相连且同时显示。LED发光二极管在实验箱上的标志为D17—D32分别对应分别接到两个数码管的小数点上。其中SEG1、SEG2的8段输入端分别与8个LED发光二BC PP193PP19210PP189PP190PP196PP195PP193PP192PP196PP195SGND112345edGcpgfGab10SEG1 7SEGPP189PP190 PP1911PP1972345gfGab9876PP1911PP1972345edGcpgfGab9876edGcpseg2eseg2dseg2cseg2pseg2g10seg2fseg2aseg2b9876 1PP193PP192103SEG37SEGPP196PP195SEG77SEGPP193PP192PP196PP195SGND2 SizeTitleA4 10PP189PP19012345edGcpPP189PP190PP1911PP1972345gfGab9876SEG47SEGedGcpgfGabSEG27SEGDate:File:PP1911PP1972345edGcpgfGab9876seg1e680D7P167680P168P169R10R11680R12680R13seg1pseg1fseg1gD4680680D5P163seg1aR6R7680R8680D6seg2eR9seg1bseg1cseg1dPP193PP19210PP189PP190PP196PP195SEG87SEGPP193PP192gfGab9876PP196PP195SGND31021-Aug-2004I:\\CPLD-5N\\cpld.ddbPP1911PP1972345SEG57SEGedGcpPP196PP19510PP189PP190gfGab9876PP189PP190PP1911PP1972345edGcpPP193PP192P175P176P177P179SEG97SEG图1-24 数码管显示原理图 680R18680R19680R20680R21P170seg2fseg2gseg2pP172P173P174PP193PP19298762PP196PP195SGND4680R14680R15680R16680R17seg2aseg2bseg2cseg2d10PP1911PP1972345SEG67SEGedGcpgfGab9876PP189PP190PP1911PP1972345gfGabedGcp4SEG1(a,b,c,d,e,f,g,p)——P161(D4), P162(D5), P163, P164(D6), P166(D7), P167, P168, SEG2(a,b,c,d,e,f,g,p)——P170,P172,P173,P174,P175,P176,P177,P179。其中P16 9 、P179Sheet of Drawn By:SEG107SEGRevisionABCB 图1-25 串行扫描数码管原理图 SGND1SGND2SGND3SGND4SGND5SGND6SGND7SGND8 A PP189PP190PP191PP192PP193PP195PP196 97151413121110E1E2E3ABCY0Y1Y2Y3Y4Y5Y6Y7SR1SR2SR3SR4SR5SR6PP197SR7SR874ALS138SDRVP189P190P191P192P193P195P196P197 123SEG3——SEG10的共阴公共端G经74138译码并反相后分别与CPLD/FPGA的对应管1A、B、C三个输入端分别接到CPLD/FPGA的P1802脚相连,74138的、P186、P187管脚,由其控制各位分时选通,动态扫描。SEG3——SEG10(a,b,c,d,e,f, g,p)的各段与CPLD/FPGA引脚的对应关系为:P189、P190、P191、P192、P193、P195、P196、P197。如图1-26所示。

4.A/D转换

本实验箱A/D转换采用双A/D转换,有8位A/D转换器ADC0809与12位A/D转换器MAX196。对于ADC0809只使用了一路模拟量输入IN-1,其余7个模拟量输入端均接到扩展槽COM5。用户可最多实现7路模拟量分时输入。ADD-A,ADD-B,ADD-C为可选择地址,分别接到CPLD/FPGA的对应管脚P36 , P37,P38

START(启动信号)与ALE(地址锁存信号)均接到CPLD/FPGA的对应管脚P1 9。时钟CLOCK端接到CPLD/FPGA的对应管脚P40。EOC(转换结束信号)接到CPLD/FPGA的对应管脚P39,Enable接对应的管脚P17。8位数字量输出端由低(ls b2-8)到高(msb2-1)分别接到CPLD/FPGA的对应管脚P24,P25,P26,P27

P28,P29,P30,P31。对于MAX196,其VDD接外电源VCC(+5V),WR写端接P25,RD读端接P24,INT端接P19,6路输入与ADC0809复用,12位输出(D0—D12)分别接P26,P27,P28,P29,P30,P31,P36,P37, P38, P39, P40,P41。用户可以随意的使用任意一种。

456P187P186P180图1-26 串行扫描数码管74138片选原理图 VCCGNDGND

C 2 BAIN112345STEREO1CHL234CHR53VCC2W125K114W1CH1CH1CH2CH3CH4CH5CH6CH71IN-0IN-1IN-2IN-3IN-4IN-5IN-6IN-7VCC TVCH0CH1CH02627281234TGND15msb2-12-22-32-42-52-62-7lsb2-8EOCADD-AADD-BADD-CALE16ref(-)ref(+)ENABLESTARTCLOCK2120191881514177P31P30P29P28P27P26P25P24P39311 CH21CH31CH41CH4CH3CH2DCOM7123455PINU8ADC080925P3624P3723P38229610P40P19P1812A 1VCC13GND23 图1-27 A/D转换器0809 C15100PFP18P41P40P39P38P37P36P31P30P29P28P27P26C U91234567891011121314CLKDGNDCSVDDD11WRD10RDD9INTD8REFD7REFADJD6CH5D5CH4MAX196D4CH3D3CH2D2CH1D1CH0D0AGND2827262524232221201918171615VCCP25P24P19C180.01UC17C164.7U0.01UC194.7UBCH5CH4CH3CH2CH1CH0图1-28 A/D转换器MAX196 Title5.D/A转换 SizeA4NumberRevisionA实验箱D/A转换器DAC0800,参考电压为VCC(+5V),数字量由CPLD/ FPGA输2入到DAC0800的DI0-DI7,与3CPLD/FPGA管脚的对应关系为:P132-DI0,P133-DI1,4P134-DI2,P135-DI3,P136-DI4,P139-DI5,P140-DI6,P141-PDI7,P16—CS。模拟量输出经J3(COM2)输出。

Date:File:21-Aug-2004I:\\CPLD-5N\\cpld.ddbSheet of Drawn By:123 C30PCDA1D+12V13-12V R35KJ3DAOUT0415U21DAIC12IoutIoutVrf(-)Vrf(+)Vlc421514116R110KR210KR45.1K7821CON2P1285P1276P1267P1258P1229P12110P12011P11912V+63LM3180.01U+12VCDA2CDA50.47UAOUT1TOSPR234512345STEREOTP112msbB1B2B3B4B5B6B7lsbB8V-COMPC14-12V0.1UDAC0800+6V3DAOUT10.47UCDA6图1-29 D/A1转换器DAC0800 123 B30PCDA3R28-12VTP2215.1KD13+6V415 V+U26DAIC2IoutIoutVrf(-)421514116DAC0800C5+12VR2610KR2710KR55.1K78263LM3180.01U+12VCDA4DAOUT1J1112P1405P1396P1367P1358P1349P13310P13211P13112AmsbB1B2B3B4B5B6B7lsbB8V- -12VVrf(+)VlcCOMPTitleSizeA4Number3C 0.1U123Date:File:21-Aug-2004I:\\CPLD-5N\\cpld.ddb图1-30 D/A2转换器DAC0800 6.单片机扩展槽及外扩槽 在主板上留有一个模拟单片机扩展槽,用于CPLD/FPGA模拟单片机之用,其与CPLD/FPGA的接口分别为,P0.0—P0.7(39—32),对应于P44,P45,P46,P47,P53,P54,P55,P56;P1.0—P1.7(1—8),对应于P57,P58,P60,P61,P62,P63,P64,P65;P2.0B—P2.7(21—28),对应于P75,P74,P73,P71,P70,P69,P68,P67;P3.0—P3.7(10—17),对应于P83,P85,P86,P87,P88,P89,P90,P92;PSEN脚对应于P194,ALE脚对应于P79;RST脚对应于P18。 7.RS232接口 ATitleSize TXD(PC)接到RXD(CPLD/FPGA)的P182; RXD(PC)接到TXD(CPLD/FPGA)的P93。 8.RS485接口 C RS485的DI、RD分别接CPLD/FPGA的P167、P169管脚,DE、RE并联后与CPLD/FPGA的P168相连。

485-BC25VCC0.1U485-AKU20Z25.1V5MAX487 B J7 AGNDABVCCMAX487DIDERERD43D221R2310067D321P160Z15.1V8图1-31 MAX487原理图 9.键盘

A 4X4键盘的接口电路如图1-32所示:CPLD/FPGA的P141、P142、P143、P144管脚作为扫描码输出,分别接到键盘的输入端,键盘的查询输出接到CPLD/FPGA的P147、P148、P149、P150四个管脚上。 P120P121P122

2 1P125 K121KR1100KR2100KR3100KR41002K212 21K612 21K1012 21121212K3 21K7 21K11 21121212K4 21K8 21K12 211KR7P1281KR6100P1271KR5100P126

RKA243214.7KK5 21K92 21

vcc5K132 2112K14 2112K15 2112K16 211100KR8P131图1-32 键盘接口示意图

100123410.扩展接口 RDPJA VCCDU22 CREST 10URSTSW1PO57PO58PO60PO61PO62PO63PO64PO65DPJRSTRSTR11kRRESET10KX1 CX2CRY2123456789PO8310PO8511PO8612PO8713PO8814PO8915PO9016PO92171819GND20P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RSTP3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7XTAL1XTAL2GNDDIP40VCCP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7EAALEPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.04039383736353433323130292827262524232221VCCPO44PO45PO46PO47PO53PO54PO55PO56VCCP184_INP79_CLKPO75PO74PO73PO71PO70PO69PO68PO679VCC8765432110KPO44PO45PO46PO47PO53PO54PO55PO56U24P44P45P46P47P53P54P55P56347813141718D0D1D2D3D4D5D6D7OELE74LS373Q0Q1Q2Q3Q4Q5Q6Q7256912151619AD0AD1AD2AD3AD4AD5AD6AD7 22.1184C2120PC2220PGND1D111图1-33 单片机接口图(一) 1240PIN的扩展槽COM6:为了外扩使用,在主板上设置有一个40PIN的扩展槽COM6,该扩展槽与标准的51单片机仿真机接口兼容,其接口定义如下:1-PO57、2-VCC、3-PO58、4-PO44、5-PO60、6-PO45、7-PO61、8-PO46、9-PO62、10-PO47、11-PO63、12-PO53、13-PO64、D314-PO54、15-PO65、16-PO55、17-P18、18-PO56、19-PO83、20-VCC、21-PO85、22-P79、23-PO86、B24-PO93、25-PO87、26-PO67、27-PO88、28-PO68、29-PO89、30-PO69、31-PO90、32-PO70、33-PO92、34-PO71、35-XTAL2、36-PO73、37-XTAL1、38-PO74、39-GND、40-PO75。其中POXXCOM61PO57表示CPLD/FPGA的管脚经过电阻后与扩展口相连。 2VCC A C RO1RO2RO3RO4RO5RO6RO7RO8RO9470X8 B1 3PO584PO445PO606PO457PO618PO469PO6210PO4711PO6312PO5313PO6414PO5415PO6516PO5517DPJRST18PO5619PO8320VCC21PO8522P184_IN23PO8624P79_CLK25PO8726PO7527PO8828PO7429PO8930PO7331PO9032PO7133PO9234PO7035X136PO6937X238PO6839GND40PO67U25P96P94P75P71AD7AD6AD5AD4AD3AD2AD1AD0P44P45P46GND12345678910111213141516A18A16A15A12A7A6A5A4A3A2A1A0I/O0I/O1I/O2GNDW29C040VCCWEA17A14A13A8A9A11OEA10CEI/O7I/O6I/O5I/O4I/O332313029282726252423222120191817VCCP97P95P74P73P67P68P70P99P69P100P56P55P54P53P47PO44PO45PO46PO47PO53PO54PO55PO56PO57RO10PO58RO11PO60RO12PO61RO13PO62RO14PO63RO15PO64RO16PO65TitleSizeA4NumberRO17PO67Revision470X8Date:File:P5821-Aug-2004I:\\CPLD-5N\\cpld.ddbP61P62P63Sheet of Drawn By:4P44P45P46P47P53P54P55P56P57P60P64P65P6723IICPO601PO612PO623GND4VCC8765VCCPO65PO64PO63RO18PO68RO19PO69RO20PO70RO21PO71RO22PO73RO23PO74RO24PO75RO25PO83RO26PO85RO27PO86RO28PO87RO29PO88RO30PO89RO31PO90P88RO32PO92P89P90GNDPO601PO612PO623GND4470X8VCCGND8765VCCPO65PO64PO63470X8SPIP68P69P70P71P73P74P75P83P85P86P87P9240PINC图1-34 单片机接口图(二) PS2接口: 4.7K5PSRA1234PSPO1612GND3VCC4PO1756BVCCPO16PO17图1-35 PS2接口图 26PIN的扩展槽COM5: 3其与CPLD/FPGA对应的管脚在主板上已标明,此扩展槽可供用户根据自己的需要使用,。 4 2COM5PO198PO199PO200PO202PO203PO204PO205PO206PO207PO208PO7PO8PO9PO10PO11PO12PO13GNDPO14GNDPO15-12VPO16+12VPO17VCC3123456COM87PO19881PO20092PO203103PO205114PO207125PO7136PO9Revision147PO11158PO13169PO1417 10Sheet of PO151811PO16Drawn By:1912PO17201342122232425264 NumberCOM9PO199PO202PO204PO206PO208PO8PO10PO12GNDGND-12V+12VVCC12345678910111213DDA4 e:21-Aug-2004 dbI:\\CPLD-5N\\cpld.d CC图1-36 26PIN_COM5接口图 RO49RO41RO42RO43RO44RO45RO46RO47RO48PO198PO199PO200PO202PO203PO204PO205PO206PO207 P198P199P200PO208BP202P203P204P205P206PO10PO11PO12PO13PO14PO15PO16 PO17 P207BPO7PO8RO50PO9RO51RO53RO54RO55RO56RO57RO58RO59RO60RO61RO52P208P10P11P12P13P14P15P16Title P17P7P8P9图1-37 26PIN_COM5接口匹配电阻 SizeNumberA4Date:File:23接口RevisionA21-Aug-2004I:\\CPLD-5N\\cpld.ddbSheet of Drawn By:4TitleANumberRevisionSizeA4Date:21-Aug-2004Sheet of

功放部分电路: 3 0.033UCADO4CADO510KPWR1J41234CONX1TOSPR 1DU18310K1234GNDLM386CADO31KPWR20.047USPEAKJ12PWAM1W21gain23GAINBYPASS5VCCOUT87650.1UCADO10.1UCADO2+12VCADO6100U2C47USPEAK2图1-38 功放电路示意图 2音频前项通道部分电路: VCC3B RPW1 10KMVCCRPW210KCPW10.1UCPW210UANumberTitleSizeA4Date:File:3GNDTP_GND2Sheet of 1Drawn By:24RevisionTP_GND121-2Aug-2004I:\\CPLD1-5N\\cpld.ddb 图1-39 电压处理 CL5100PRL5 CHLCL3CL40.1U47KGND 4RL310KRL710KIC10A213LF353CHL1WL15KRL25.1K10U8VCCRL410KVCCRL6100RL11K10UCL1CR4GND100PRR5RR710K0.1UCR247K12MVCCSW_PHONE43CHR1122RR6VCC 100GNDWR135KWCR3RR310K65IC10B7LF353CHR110URR25.1KRR410KRR11KMVCC图1-40 双声道及话筒前置处理电路 2345GND10UCR1GNDTitleSizeBDate:File:Number21-Aug-2004I:\\CPLD-5N\\cpld.ddbSheet oDrawn B

实验一:QuartusII软件的基本操作与应用

一、实验目的:

1、通过一个简单的3-8译码器的设计,掌握组合逻辑电路的设计方法。 2、掌握组QuartusII软件的基本操作。 3、初步了解可编程器件设计的全过程。 二、 实验步骤: 一)、新建项目

首先新建一个项目来管理所要新建的各种文件,方法是:

在Quartus Ⅱ环境下,打开菜单File,选择子菜单New Project Wizard后,打开如下图1所示窗口,按照向导窗口的提示,创建新项目。

图1 新建项目窗口1

点击图3-3中的“Next”按钮,在下图2所示窗口中输入有关的路径名和项目名称后,按下“Finish”按钮,即可完成新建项目的工作。

新项目的保存路径 新项目的名称 新项目中顶层模块的名称 注意:该名称应与新项目的名称一致

图2 新建项目窗口2

二)、原理图设计与编译

原理图的设计与编译在Compile Mode(编译模式)下进行。

1 新建原理图文件

打开File菜单,选择New,出现如下图3所示 “新建”窗口。

图3新建窗口

在图3-5 所示的“Device Design Files”标签中,选择“Block Diagram/Schematic File”项,按下“OK”按钮即可打开原理图编辑器(如图4所示),进行原理图的设计与编辑。

Block & Symbol Editors

图4 原理图编辑器

选择“Block & Symbol Editors”中的不同器件(如图5所示),在编辑区中就可完成原理图的设计编辑。

文本工具

总线连接线 元器件 单线连接线 元器件翻转工具 图5 Block & Symbol Editors

添加元器件可点击“Block & Symbol Editors”中元器件符号,或在编辑区的空白处双击鼠标左键,出现“Symbol”对话框,在“Libraries”中选择所需元器件,或直接在“Name”文本框中输入元器件名称,如74138(3-8译码器),点击“OK”按钮,将元器件拖放到编辑区中。

图6 Symbol对话框

按照设计需要,使用“单线连接线”或“总线连接线”将各器件的引脚连接起来。总线的命名采用数组形式,如out[7..0],与总线相连的引脚也采用相同的数组形式命名;若需从总线中引出单线时,须指出各单线对应的总线位号(双击线条即可命名)。(如图7所示)两根连接线,若名称相同,亦表示两线为连通状态。(如图8所示)

图7 连线示意图1

图8 连线示意图2

选择某一元器件,点击“元器件翻转工具”按钮,即可改变元器件引脚顺序及摆放方向(如图9所示)。

图9元器件翻转工具使用效果

2 编译原理图

原理图设计完成后,在编译模式下,点击“?”按钮进行编译,编译无误将弹出编译成功对话框;编译如有错误,请根据“调试信息”框中的错误提示修改原理图,直至编译通过。生成成功后将弹出成功对话框。(如图10所示)

图10 编译模式按钮及编译成功对话框

3 生成自定义芯片

原理图编译通过后,可根据用户需要,设计生成自定义芯片。打开“Tools”菜单,选择“Creat Symbol For Current File”菜单项(如图11所示),就可生成自己定义的芯片,芯片的名称就是编译通过的原理图的名称。用户即可在“Symbol”对话框“Libraries”文本框的“Project”菜单下找到自己设计的芯片(如图12所示)。

图11 自定义芯片生成菜单项

图12 自定义芯片选择界面

4 创建向量波形文件

当原理图编译完成后,需要新建波形文件,以便利用波形文件对前面完成的设计进行仿真分析。本过程需要在Simulate Mode(仿真模式)下进行。

打开“新建”窗口,在“Other Files”标签中选择“Vector waveform File”(如图13所示),按下“OK”按钮,即可新建一个波形文件。

图13波形文件新建界面

波形文件编辑界面如下图14所示,分为两个区域,左侧为节点编辑区,右侧为波形仿真区;

图14 波形文件新建界面

在左侧节点编辑区的空白处双击鼠标左键,弹出“节点/总线插入”对话框(如图15所示),添加输入、输出节点;

图15 节点/总线插入界面

点击图16中的“Node Finder”按钮,将弹出“Node Finder”窗口,如图17所示。在该界面“Filter”下拉菜单中选择“Pins:all”,点击“Start”按钮后,在窗口的左半边的“Node Finder”列表框中,将显示原理图中所有的输入、输出节点,可从中选择你所需要的节点,添加到右侧的“Selected Nodes”列表框中(如图18所示)。被选中的节点信号将作为波形文件的输入输出信号。点击“OK”按钮,即可回到波形文件编辑界面(如图18所示)。

接下来,可在波形文件编辑界面右侧的波形仿真区中,按周期设置输入节点信号的初始值(周期长度可在菜单Time—Grid Size中设置,如图19所示)。设置初值的方法是:按住鼠标左键,选中某节点信号的某个周期,从“波形编辑器”中选择适当的值,即可完成初始值的设定,如图19所示。设定完毕,就可以单击运行仿真按钮(如图20所示)进行波形仿真,分析输入输出波形了。仿真的结果如图21所示。

图16 “Node Finder”窗口界面

图17 “Selected Nodes”窗口界面

图18 波形文件编辑界面

图19 波形文件周期长度的设定界面

波形编辑器

图20 波形文件输入节点信号初始值的设定界面

图21 波形仿真结果界面

由于仿真时默认采用Timing(时序)模式,因此输出波形中会出现延时或毛刺现象。要解决这个问题,可以在菜单Processing—Simulator Settings中将mode改为Functional(功能)模式(如图23所示),重新仿真即可。修改模式后,仿真结果如图24所示,延时和毛刺现象消失。

图23 波形仿真模式设置界面

图24 “Functional”模式下波形仿真结果界面

三)、 器件的选择与引脚的锁定与下载

1、器件的选择

在管理窗口中选择Processing/Compiler Settings,点击Chips & Dvices,这时弹出如下窗口(本实验箱按图中进行选择)

2、输入、输出管脚配置:

点击工具栏的低层编辑和寻找节点,就会跳出低层编辑示意图,如图2-66所示。该图的左边为输入、输出管脚以及寄存器的浏览器,在Filter框中选取不同的过滤器(如Pins:all , Pins:unassigned,Pins:assigned等),点击Start 按扭,在Nodes found框中就会有不同的结果。选取Pins:unassigned点击Start 按扭后,在Nodes found框会列出所有目前尚未分配的输入、输出管脚名称。用鼠标左键拖住该名称放到右面floorplan对应的I/O或全局输入管脚上即可。拖放成功后再点击start按扭,Node found框的内容就会得到刷新。按此方法可以逐一将对应的管脚分配完毕,再次点击Start compiler就可以形成“counter.pof”等可以下载的文件。

(四)、器件的下载编程与硬件实现

实验箱电路板上的连线

用三位拨码开关代表译码器的输入A、B、C,分别与EPF1K100QC208-3芯片的管脚相连;用LED灯或另八位拨码开关来表示译码器的输出,将D0...D7对应的管脚分别与8只LED或拨码开关等相连(A-103,B-104,C-111,D0~D7:161,162,163,164,166,167,168,169).

三 、实验报告

1.总结用QuartusII开发系统对逻辑电路进行设计、仿真的操作步骤。 2.讨论用CPLD/FPGA 开发系统进行逻辑电路设计的特点与优越性。 3.讨论在设计过程中遇到的问题、解决的过程以及收获体会。

实验二 全加器设计、仿真与下载

一. 实验目的

1.熟练掌握MAX+PLUSⅡ的使用。

2.掌握一位全加器的设计方法、学会用一位全加器组成四位全加器。 3.掌握CPLD/FPGA开发系统硬件电路的下载及测试。 4.学习模块化电路设计方法。

二. 实验仪器设备

1.PC机一台

2.KHF-5 CPLD/FPGA实验开发系统一套。

三. 实验要求

1.预习组合电路中一位、四位全加器的设计方法。

2.预习CPLD/FPGA开发系统(硬件电路)中的开关及发光管的使用方法。 3.预习本次实验内容。 4.用图形编辑方法输入电路。

四.实验内容及操作步骤

1.设计一位全加器

图2-1 一位全加器

(1)完成电路的输入,以及对引脚的命名等(参考电路如图2)。 (2)对一位全加器进行编译、仿真与下载。

(3)点击File菜单的Create Default Symbol项,创建缺省模块。 2.利用一位全加器模块进行四位全加器的设计。

(1)创建一个新的项目,新建文件。在新打开的图形编辑区双击左键,从Enter Symbol 对话框中的用户目录(自创目录)下选择模块名。

(2)连接线路,并进行编译(如图6)。 (3)点击Assign菜单的Device项选择芯片。

(4)管脚分配(建议使用16个数据开关(SW1——SW16)观察,对应实验箱:输入P103、P104、P111、P112、P113…P128,输出可用发光二极管P161(D4), P162(D5), P163,P164(D6), P166(D7), P167,P168,P169, P170, P172, P173, P174,P175,P176,P177,P179。)。

(5)后编译,并进行下载。 (6)仿真并记录仿真波形。 (7)观察并记录实验结果。

图2-2 四位全加器

五、用VHDL设计一位半加器,创建缺省模块,再用原件例化方式进行一位全加器的设计,

最后设计为4位全加器。

六 .实验报告

1.总结模块化电路设计的方法。 2.总结quartus Ⅱ进行电路设计的实质。 3.总结用quartus Ⅱ进行电路设计的一般步骤。

实验三 基本组合逻辑电路设计

一 实验目的

1掌握VHDL语言的基本结构及设计的输入方法。 2掌握VHDL语言的组合电路设计方法。 二 几种常用的组合逻辑电路

(一)8-3优先编码器(参考P78例3-32) 实验原理

常用的编码器有:4-2编码器、编码器、16-4编码器,下面我们用一个8-3编码器的设计来介绍编码器的设计方法。

8-3编码器如图3所示,其真值表如表3。

A BDOUT0 编C

D 码DOUT1 E 器F DOUT2 G H EN 图3-1 8-3编码器

表3-1 8-3优先编码器真值表

输入 0 1 1 1 1 1 1 1 1 X X X X X X X X 1 X X X X X X X 0 1 X X X X X X 0 0 1 X X X X X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 X X X X 0 1 X X X 0 0 1 X X 0 0 0 0 0 0 1 X 0 1 Z 0 1 0 1 0 1 0 1 输出 Z 0 0 1 1 0 0 1 1 Z 0 0 0 0 1 1 1 1 EN A B C D E F G H DOUT0 DOUT1 DOUT2 实验步骤:

1编程实现设一个8-3优先编码器(可用if…elseif语句或条件信号赋值语句)。 2 将编辑好的电路进行编译和仿真。

3输入信号接实验箱的拨码开关,输出信号接发光二极管。改变拨码开关的状态,观察实验结果。

(二)多路数据选择器

实验原理

在VHDL语言中描述一个8选一的多路选择器的方法有多种,例如:在一个进程中使if-then-else语句;在一个进程中使用case语句;使用with select构造或使用结构VHDL。推

荐进程中使用case语句。但无论使用哪一种描述方法,综合得到的结果是相同的。8选1多路选择器结构图如图3-2所示。(可参考教材P42-44例1-3)

图3-2 8选1多路选择器

实验内容:设计并实现一个8选1多路数据选择器(可用case语句、条件信号赋值语句、选择信号赋值语句)。

实验步骤:

1 编程实现设一个8选1多路数据选择器。 2 将编辑好的电路进行编译和仿真。

3 输入信号接实验箱的拨码开关,输出信号接发光二极管。改变拨码开关的状态,观察实验结果。

(三)七人表决器 实验原理:

使用7 个电平开关作为表决器的7 个输入变量,输入为电平“1”时表示表决者“赞同”,输入为电平“0”时表示表决者“不赞同”。当表决器的7 个输入变量中有不少于4 个输入变量输入“1”,那么表决结果输出逻辑高电平,表示表决“通过”,否则,输出逻辑低电平,表示表决“不通过”。七人表决器的可选设计方案非常多,可以采用使用全加器的组合逻辑。使用VHDL 进行设计的时候,可以选择行为级描述、寄存器级描述,结构描述等方法。当采用行为级描述的时候,采用一个变量记载选举通过的总人数。当这个变量的数值大于等于4 时,表决通过,绿灯亮;否则表决不通过,黄灯亮。因此,设计时,需要检查每一个输入的电平,并且将逻辑高电平的输入数目进行相加,并且进行判断,从而决定表决是否通过。

实验内容

1.使用VHDL 实现上述描述。 2.下载并且验证结果。 三 实验报告:

1.简要说明实验步骤。

2.写出实验用的VHDL源程序。

3.记录仿真结果(波形),说明输出延时情况。

4. 记录可编程器件与拨码开关和发光二极管的连接情况。 5.记录实验结果,并分析其结果的正确性。

实验四 基本时序逻辑电路的VHDL模型

一 、 实验目的

1掌握简单的VHDL程序设计。

2 掌握VHDL语言对基本时序逻辑电路的建模。

二、实验内容

分别设计并实现锁存器、触发器的VHDL模型。 (一) 寄存(锁存)器 1 实验原理

寄存器用于寄存一组二值代码,广泛用于各类数字系统。因为一个触发器能储存1位二值代码,所以用N个触发器组成的寄存器能储存一组N位的二值代码。 2 实验内容:

实现同步锁存器(同步锁存器指复位和加载功能全部与时钟同步,复位端的优先级最高。在数字系统设计时,采用完全同步的锁存器,可以避免时序错误。)

附:一个8位寄存器的VHDL描述。 LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; ENTITY REG IS

PORT(D:IN STD_LOGIC_VECTOR(0 TO 7); CLK:IN STD_LOGIC;

Q:OUT STD_LOGIC_VECTOR(0 TO 7)); END REG;

ARCHITECTURE ART OF REG IS BEGIN

PROCESS(CLK) BEGIN

IF(CLK'EVENT AND CLK=?1?)THEN Q<=D; END IF;

END PROCESS; END ART;

(二)触发器

实验内容: 1、D触发器

1)、带异步置位的D触发器(当时钟信号或置位信号有跳变时激活进程。如果置位信

号有效(高电平),D触发器被置位,输出信号高电平,如果置位信号无效,此时时钟信号出现上升沿,D触发器输出信号变为输入信号);

2)、带异步复位和置位的D触发器(当时钟信号、复位信号或置位信号有跳变时激活进程。如果复位信号有效(高电平),D触发器被复位,输出信号低电平;如果复位信号无效置,而置位信号有效(高电平),D触发器被置位,输出信号高电平,如果复位信号和置位信号都无效,此时时钟信号出现上升沿,D触发器输出信号变为输入信号)。

附:最简单的D触发器,没有复位和职位信号。 LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; ENTITY DCFQ IS

PORT(D,CLK:IN STD_LOGIC; Q:OUT STD_LOGIC); END DCFQ;

ARCHITECTURE ART OF DCFQ IS BEGIN

PROCESS(CLK) BEGIN

IF (CLK'EVENT AND CLK=‘1’)THEN -- 时钟上升沿触发 Q<=D; END IF;

END PROCESS; END ART;

上述触发器为最简单的D触发器,没有复位和职位信号。根据上例写一个

2、JK触发器

从真值表可以看出,PRN=0 时,触发器置数,Q=?1?;CLRN=0 时,触发器清零,Q=?0?;当PRN=CLRN=J=K=?1?时,在CLK 上升沿的时候,触发器翻转。 3)RS触发器 四、实验报告

1、简要说明实验步骤。

2、写出实验用的VHDL源程序。

3、记录仿真结果(波形),说明输出延时情况。 4、记录实验结果,并分析其结果的正确性。

5、说明实验中遇到的问题及解决方法,写出实验心得体会。

实验五:计数器及七段数码显示译码器设计

一、实验目的:

1 进一步掌握VHDL语言的基本结构及设计的输入方法; 2 掌握VHDL语言的时序电路的设计方法; 3学习七段数码显示译码器设计;

4 学习VHDL的CASE语句应用及多层次设计方法。 二、实验内容

(一)七段数码显示译码器设计

七段数码是纯组合电路,通常的小规模专用IC,如74或4000系列的器件只能作十进制BCD码译码,然而数字系统中的数据处理和运算都是二进制的,所以输出表达式都是十六进制的,为了满足十六进制的译码显示,最方便的方法就是利用译码程序在FPGA/CPLD中实现。作为七段译码器,输出信号LED7S的输出分别接数码管的7个段。 (参考P141图4-87)。

(二)计数器

1、设计一个带使能输入、进位输出及同步清0的增1十进制计数器,波形图见图

管脚分配:输入时钟管脚clk-P78;同步清0管脚clr-P103,使能输入管脚en-P104,输出接一个数码管,管脚分配对应为161、162、163、164、166、167、168;进位位管脚P111(或170)。

2、设计一个用数码管显示的60进制同步计数器,个位显示0~9,十位显示0~5。 算法设计:个位计数器的模M=10,十位计数器的模M=6。用IF 语句描述计数器。 管脚分配:输入时钟管脚clk-P78,两个数码管管脚分别为:

SEG1(a,b,c,d,e,f,g,p)——P161, P162, P163, P164 P166, P167, P168, P169。 SEG2(a,b,c,d,e,f,g,p)——P170,P172,P173,P174,P175,P176,P177,P179 附:24进制计数器

library ieee; -------调用库 use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;

entity twelveto1 is -------实体描述 port(clk: in std_logic; --------端口说明 outputa:out std_logic_vector(0 to 6); outputb:out std_logic_vector(0 to 6)); end twelveto1;

architecture arch_twelveto1 of twelveto1 is --------结构体描述 signal sa:std_logic_vector(3 downto 0); signal sb:std_logic_vector(3 downto 0); begin

process(clk) --------进程语句描述 begin

if (clk'event and clk='1') then --------二十四归一条件语句模块 if (sa=3 and sb=2) then sa<=\ sb<=\ else

if sa=9 then

sa<=\ sb<=sb+1; else

sa<=sa+1; end if; end if; end if; end process;

with sa select outputa<=\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ with sb select outputb<=\ \ \ \ \ \ \ \ \ \ --段码转换模块 --1 --2 --3 --4 --5 --6 --7 --8 --9 --A --b --C --d --E --F --0

--段码转换模块 --1 --2 --3 --4 --5 --6 --7 --8 --9 --A

\ --b \ --C \ --d \ --E \ --F \ --0 end arch_twelveto1;

3、设计一个分频电路:已知cpld/fpga信号源脉冲频率为50M,试编写一分频程序,得到一周期为1秒(频率为1Hz)的脉冲频率。

4、设计60进制计数器,计数频率为1Hz,并用七段数码管显示。 三、实验报告

1、简要说明实验步骤。

2、写出实验用的VHDL源程序。

3、记录仿真结果(波形),说明输出延时情况。 4、记录实验结果,并分析其结果的正确性。

5、说明实验中遇到的问题及解决方法,写出实验心得体会。

实验六 简单数字钟设计

数字钟是一个将“ 时”,“分”,“秒”显示于人的视觉器官的计时装置。它的计时周期为24小时,显示满刻度为23时59分59秒,另外应有校时功能和报时功能。干电路系统由秒信号发生器、“时、分、秒”计数器组成。“秒计数器”采用60进制计数器,每累计60秒发现一个“分脉冲”信号,该信号将作为“分计数器”的时钟脉冲。“分计数器”也采用60进制计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时计数器”。“时计数器”采用24进制计时器,可实现对一天24小时的累计。

基本要求:实现时分秒的准确计时(可采用完全VHDL实现;也可用混合输入设计,底层VHDL,顶层用原理图电路设计)

拓展要求:1、加入校时校分电路;2、加入整点/定点报时功能。 附:

1、串行扫描显示电路设计:通过用VHDL语言设计串形扫描显示电路

用VHDL设计,示例如下:、

library ieee; -------调用库 use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity tcx is -------实体说明

port( inclk:in std_logic; -------输入输出定义 outa:out std_logic_vector(6 downto 0); outb:out std_logic_vector(2 downto 0)); end tcx;

architecture arth_tcx of tcx is --------结构体定义 signal ma:std_logic_vector(2 downto 0); signal mb:std_logic_vector(3 downto 0); signal fp:std_logic_vector(24 downto 0); signal f:std_logic; begin

process(inclk) begin

if (inclk'event and inclk='1') then if fp=24999999 then

fp<=\ f<=not f; else

fp<=fp+1; end if; end if; end process;

process(f) begin

if (f'event and f='1') then ma<=ma+1; mb<=mb+1; end if; end process; Outb<=ma;

with mb select outa<= \ \ \ \ \ \ \ \ \ \ \ ---------进程说明---------分频模块 ---------扫描输出模块 ---------段码转换模块 --1 --2 --3 --4 --5 --6 --7 --8 --9 --A --b

\ --C \ --d \ --E \ --F \ --0 end arth_tcx;

2、 动态显示的十进制计数器

library ieee; --调用库 use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;

entity counter is -------实体说明

port( inclk:in std_logic; --输入输出定义 outa:out std_logic_vector(0 to 7);

outb:out std_logic_vector(2 downto 0)); end counter;

architecture arth_tcx of counter is --------结构体定义 signal st:std_logic_vector(2 downto 0); signal ma:std_logic_vector(3 downto 0); signal fp:std_logic_vector(15 downto 0); signal hm:std_logic_vector(8 downto 0); signal f,fpb:std_logic; begin

process(inclk) ---------进程说明

begin

if (inclk'event and inclk='1') then ---------1KHz分频模块 if fp=24999 then

fp<=\ f<=not f; else fp<=fp+1; end if; end if; end process;

process(fpb) begin

if (f'event and f='1') then st<=st+1; end if;

end process; ---------1Hz分频模块 process(f) begin

if (f'event and f='1') then if hm=499 then

hm<=\ else

hm<=hm+1; end if; end if; end process;

process(fpb) begin

if (fpb'event and fpb='1') then if ma=9 then ma<=\ else ma<=ma+1; end if; end if; end process; process (st)

begin

case st is

when \ --mseg<=ma; outb<=\ when \ --mseg<=mb; outb<=\ when \ --mseg<=mc; outb<=\ when \ --mseg<=md; outb<=\ when \ --mseg<=me; outb<=\ when \ --mseg<=mf; outb<=\ when \ outb<=\ --mseg<=mg; when \ outb<=\ --mseg<=mh;

when others=>outb<=\ end case;

end process;

Process(ma) --段选模块 begin case ma is

when \ when \ when \ when \ when \ when \ when \ when \ when \ when \ when \ when \ when \ when \ when \ when others=> outa<=\ end case;

end process; end arth_tcx;

--F

本文来源:https://www.bwwdw.com/article/7sh3.html

Top