可编程逻辑器件fpga实验指导书_第1页
可编程逻辑器件fpga实验指导书_第2页
可编程逻辑器件fpga实验指导书_第3页
可编程逻辑器件fpga实验指导书_第4页
可编程逻辑器件fpga实验指导书_第5页
已阅读5页,还剩102页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGEPAGE2一、可编程逻辑器件概述1·1二、可编程逻辑器件应用实质和编程原则6668三、VHDL程序设计基本结构 实体(ENTITY) 结构体(ARCHITECTURE) 子程序(FUNCTIONPROCEDURE 集合包(PACKAGE) 库(LIBRARY) 配置 四、VHDL语法和语句简介4.1、标准数据类型、标准逻辑类型、用户自定义数据类型、基本运算符、关系运算符、算术运算符4、其他运算符4.3·4.5CASE语句4.6进程(PROCESS)语句4.7并行过程调用语句CONCURRENTPROCEDURECALLS 1、并行信号赋值语句2、条件信号赋值语句3、选择信号赋值语句4.8元件例化语句COMPONENTINSTANTIATIONS4.9LOOP语句 4.10跳出循环语句(NEXT、EXIT语句4.11RETURN语句 PAGEPAGE34.124.12NULL语句五、状态机六、实验篇· )七、FPGA实验平台简介 1、Cyclone系列器件特性 2、Cyclone系列器件可选封装和I/O引脚数 3、Cyclone系列器件I/OBanks布局图 4、CyclonedeviceIOEs支持标准接口 5、CycloneFPGAEP1C6Q240器件特点 6、CycloneEP1C6(12)Q模块分布图 7、CycloneEP1C6Q资源分配 8、CycloneEP1C6240C8引脚布局图 1、电源单元 2、输入单元 3、输出单元 4、接口单元 5、扩展单元 1、电源 2、逻辑电平输入信号——8bitDIP开关 3、单脉冲输入信号 4、连续脉冲输入信号 5、4X4键盘输入信号 1、LED显示方式 2、七段数码管显示方式 3、米字型数码管显示方式 4、8X8点阵显示方式 5、LCD显示方式 PAGEPAGE41、文本编辑源程序文件步骤2、原理图和图表模块编辑步骤3、混合编辑(自底向上)步骤4、混合编辑(自顶向下)步骤一、可编程逻辑器件概述可编程逻辑器件发展及应用意义可编程逻辑器件发展--PROM(ProgrbleReadOnlyMemory)、(ProgrbleLogicArray)、PAL(ProgrbleArrayLogic)GAL(GenericArrayLogic)、到采用大规模集成电路技术的EPLD(ErasableProgrbleLogicDevice),直到CPLD(ComplexProgrbleLogicDevice)FPGA(FieldProgrbleGateArray)。在这里仅对FPGA作必要的讲述。FPGAFieldProgrbleGateArray(现场可编程门阵列)PAL、GAL、PLD等可编程器件的基础上进一步发展的产物,是集成电路(ASIC)中集成度CLB(ConfigurableLogicBlockIOB(InputOutputBlock)和内用户可对FPGA内部的逻辑模块和I/O模块重新配置,以实现用户的逻辑功能。它还具有FPGA作为集成电路(ASIC)领域中的一种半定制电路,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。可以认为FPGA能完成任何数字器件的功能,上至高性能CPU,下至简单的74、40系列等集成电路。FPGA内部由门电路和触印刷电路板PCB后,还可以利用FPGA的修改能力,随时随地对功能软件进行修改设计而不必改动硬件电路。使用FPGA来开发数字系统电路,可以大大缩短设计时间,减少PCB面积,提高系统的可靠性。FPGA工作状态由存放在片内RAM中的程序来控制,其工作时需要对片内的RAM进行烧写程序。用户可根据不同的配置模式,采用不同的编程方式。加电时,FPGA将EPROM中数据读入片内RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA的数据丢失,可以再次给FPGA烧写程序具有反复使用功能、非常灵活,烧写次数可达10万次之多。FPGA编程无须的FPGA编程器,只须JTAG、PS方式烧写程序即可。FPGA是小批量系统提高系统集成度、可靠性的最佳选择之一。目前FPGA生产厂家很多,主要有XILINX、TI公司、AL 可编程逻辑器件FPGA/CPLD结构简介下面以AL公司Cyclone系列为例介绍其特性: 查找表LUT用来产生组合逻辑,它能产生4输入变量的逻辑函数。当需要产生的LUT并联起来就CycloneLAB1-11-1-1-1-LE4LUT、进位链逻辑和一个可编程的寄存器构成。4输入1LE的输出都可以连接到局部布采用SRAM技术实现模块,其特点是工作速度快,单元密度高。SRAM是易失性在这里着重说明一下查找LUT,LUT实质上RAMRAM构造形式由地址线和LUT41位数据(16X1)组成RAM。当编程者用VHDL或原理图等形式来描述一个数字逻辑电路后,开发编译软件LED触发器、T触发器、JKSR寄存器模式。每个可编程寄存器具有数据、异步数据装载、时钟、时钟使能、和异步置位/复位LTLE(由择号动,生2(A(快通道)互连。LELUT能够用来完成不相关的功能,因此能够提高LE资源利用率。除3个输出外,在一个逻辑阵列块LE,还可LUT链和寄存器链进行互连。在同一个LAB中的LE通过LUT链级联在一起,可以实现多输入(输入多于4个)的逻辑功能。在同一个LAB中的LE里的寄存器可以通过寄存器链级联在一起,构成一个移位寄存器,那些LE中的LUT资源可以单独实现组合逻辑功能。1-1-1-二、可编程逻辑器件应用实质和编程原则选择可编程逻辑器件的实质(或目的或目标型结构框图如图模型结构框图2-要想用可编程逻辑器件实现某一数字系统功能目标任务,首先要透切分析系统顶层事层,干一到子,心统信量信号变量并选用相应的硬件描述语言把数字电路系统所完成的目标任务内容编写成其语言用软、、等直成件写选可满可编程逻辑器件设计流程2)描述设计流程→DesignEntry-Schematicsvs.设计输入和语言描述→Compile编译→Synthesis综合→ ce&Route布局或布线→TimingSimulation时序仿真或FunctionSimulation功能仿真→Configuration配置和引脚绑定→再Compile编译生成文件→DesignDesignEntryVHDLce&Routece&RouteTimingSimulation设计流程图2-形等几种形式、编译、仿真(包括时序和功能仿真)和对所选器件设计文件、实验验证等步骤。数字系统电路设计包括组合逻辑(CombinationalLogic)和时序逻辑(SequentialLogic)、触发器(Flip-Flop)、状态机(StateMachine)、SOPC(SystemOnaProgrbleChip)(输入偏斜和输出偏斜时间(OutputSkewTime))硬件描述语言分类VHDLVERILOG两种硬件描述语言模式。两种语言模式各有其特点。在这里只选择了VHDL语言进行描述。VHDL语言是为满足设计过程中的各种需要而设计的。包括几方面:1)它可以对系统的把它们归类到SOPC中。前者采用EEPROM器被的文件,这是一种非易失器,一旦完成设计文件的,即使系统断电也不会丢失数据。如后者采用JTAG方式SRAM器被的文件,这是一种易失性器,每次应用系统都要向可编程逻辑器件重新文件;如后者采用PS方式EEPROM器被的文件,这是一种的操作称为编程(Programming,文件后缀为*.pof),向现场可编程门阵列器件文件的操作称为配置(Configuring,文件后缀为*.sof)。下面以AL 公司Cyclone系列FPGA用VHDL硬件描述语言为例讲述。三、 程序设计基本结(Entity(Architectue单元。VHDL程序设计基本结构图3-1所示。VDL实体 实体名称isgeneric(类属);port(端口);end实体名称;out输出型,该端口只能在实体内部对其赋值。在实体模型中,输出端口的值不能被inout输入输出型,既可读也可赋值。可读的值是该端口的输入值,而不是内部赋值给端口的值。在实体模型中,inout该端口既可作输入也可作输出,其值能够被读,也能被bufferout相似但可读。读的值即内部赋的值。它只能有一个驱动的源。inout模式相似,但是不同的是buffer只能够有一组来源。--类属是实体说明组织中的可选项,放在端口说明之前。类属必须在实体区域中设计实体设计实体程序实体进程配置VHDL程序设计基本结构图3-端口模式说明表3-generic(trise,tfall:time:=1ns;datawidth:integer:=16);scan03-1。libraryieee;useentityscan0isport(clk:in a:instd_logic_vector(15downto0);aa:instd_logic_vector(3downto0);ctr:outstd_logic_vector(0to2);q:outstd_logic_vector(3downto0));endqq 3-结构体实现的目标任务或内容描述由结构体(architecture)来完成。它具体了基本设计单元的任behavior(基本设计单元的数学模型描述),寄存器传输描述dataflow(数据流描述)和机构描述 ofend结构体名称;architecturescanofscan0isvariablecount:std_logic_vector(0to2);if(clk'eventandclk='1')thenelsecount:=count+1;endcasecountwhen"001"=>q<=a(15downto12);when"010"=>q<=a(11downtowhen"011"=>q<=a(7downtowhen"100"=>q<=a(3downto0);when"101"=>q<=aa;whenothers=>q<=(others=>'0');endcase;end

~3- 函数名(参数表)RETURN 数据类型IS --函数体END 过程名(参数表)--定义过程首 集合包 程序包名IS END BODY程序包名IS ENDlibraryieee;useieee.std_logic_1164.all;packageexpis procedurenand4(signala,b,c,d:insignaly:outendpackagebodyexp procedurenand4(signala,b,c,d:insignaly:outstd_logic)y<=not(aandbandcandd);endexp;libraryieee; usework.exp.all;entityex -x:outstd_logic);endentityex;architecturebhvofexis architecturebhv;库LIBRARYUSE库名.包集合名.范围(或项目名 ASIC库USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED;配置END四、 语法和语句简1、标准数据类型,TRUE、、2、标准逻辑类型 ‘L0‘H1‘_’——不可能情况(可忽略值)在使用该类型STD_LOGIC语句时,直接定义BIT就可以。如a:insignalaa:inSTD_LOGIC_VECTOR(7downtosignalaSTD_LOGIC_VECTOR(03、用户自定义数据类型TYPESTD_LOGICIS数组TYPEISARRAY(范围)OFSYBTYPE类型名ISVHDL语言运算符1、基本运算符非或与 OR(或)AND(与 2、关系运算符=<>=(等于)/=(不等于)<(小于)<=(小于等于 3、+加/除-减*乘 /(除)SLL(逻辑左移)ROR(逻辑循环右移)-(减) ABS(取绝对值)*(乘)REM(取余)SLA(算术左移4、-负+正& +(正)=>(并联运算符,在元件例化时可用于形参倒实参的映射)变量:=表达式;--变量赋值语句,在VHDL中进程语句可以变量,若要对变量赋值,就需使用变量赋值语句。变量赋值使用的符号为“:”。信号<=表达式;--信号赋值语句,在VHDL中信号赋值语句可以在进程之外,若在之后,信号才可以被更新。信号赋值使用的符号为“”。ifif条件elsif条件then]endif;endifendif实例4-1。

if(clk'eventand elsecount:=count+1; --count1endlibraryieee;useieee.std_logic_1164.all;entitycount4 rst:instd_logic; q:bufferintegerrange15downto0);endentityarchitecturejsqofcount4isif(clk'eventand )endprocess; architecturecase语句常用来描写总线行为、编和译的结构。case与if语句相比较可读性endcasewhen分支条件 endcase;之相同的选择值,执行对应的顺序语句,最后结束case语句。casecase语句至少包含除非所有条件语句中的选择值能完整覆盖case语句中表达式的取值,否则最末一个条4-3。casecount qwhen"001"=>q<=a(31downtowhen"010"=>q<=a(23downtowhen"011"=>q<=a(15downtowhen"100"=>q<=a(7downto0);when"101"=>q<=aa;whenothers=>q<=(others=>'0');endcase;进程(process)语句序一步一步地去执行process中的语句。其格式如下:endprocess信号及共享变量。waituntil条件表达式;--条件等待、变化waitfor时间表达式;--等待时间进程(process)——是无限循环语句;process中的顺序语句具有明显的顺序/并行运行双architecturescanofscanisvariablecount:std_logic_vector(2downto0);if(clk'eventandclk='1')thenelsecount:=count+1;endlibraryieee;useieee.std_logic_1164.all;entitycount4 rst:instd_logic; q:outstd_logic_vector(3downto0));endentitycount4;architecturejsqofcount4issignalq1:std_logic_vector(3downto0);if(clk'eventandclk='1')then endprocess; architecturelibraryieee;useuseieee.std_logic_unsigned.all;entitycount10is port(clk,en:instd_logic;--inbit;rst:instd_logic; cout:outstd_logic;q:outstd_logic_vector(3downto0));endentitycount10;architecturejsqofcount10isvariableq1:std_logic_vector(3downto0);if(rst='1')thenq1:=(others=>'0'); elsif(clk'eventandclk='1')then if(en='1')then if(q1<9)thenq1:=q1+1;elseq1:=(others=>'0');endif;endif;endif;if(q1=9)thencout<='1'; elsecout<='0';end endprocess; architecture并行过程调用语句concurrentprocedurecalls(参数名=>1、并行信号赋值语句2、条件信号赋值语句对象(赋值目标)<={表达式when赋值条件else}{when{when3、选择信号赋值语句with选择表达式component实例化名称:组件名称 map设计实例4-70~9译码显示disp4-8。libraryieee;useuseieee.std_logic_unsigned.all;entityhalf_adderis port(a,b:instd_logic;co,so:outstd_logic); entityhalf_adder; fh1ofhalf_addersignalstate:std_logic_vector(1downto0);casestatewhenwhenwhenwhenothers=>null;endcase;endarchitecturelibraryuseentityor2ais port(a,b:instd_logic;c:outstd_logic); entityor2a; oneofor2aisc<=aorendarchitecturelibraryuseieee.std_logic_1164.all;entityfull-adder port(ain,bin,cin:instd_logic; entityfull-adder; fd1offull-adderissignald,e,f:std_logic; componenthalf_adder port(a,b:inco,so:outstd_logic);endcomponent;componentport(a,b:inc:outstd_logic);endcomponent;u1:half_adderportmap(a=>ain,b=>bin,co=>d,so=>e); u2:half_adderportmap(a=>e,b=>cin,co=>f,so=>sum);u3:or2aportmap(a=>d,b=>f,c=>cout);endarchitecturefd1;endarchitecturefd1libraryieee;entitydispisportd:instd_logic_vector(3downto0);q:outstd_logic_vector(6downto0));endarchitecturedisp_arcofdispiscasedwhen"0000"=>q<=" when"0001"=>q<=" when"0010"=>q<=" when"0011"=>q<=" when"0100"=>q<=" when"0101"=>q<=" when"0110"=>q<=" when"0111"=>q<=" when"1000"=>q<=" whenothers=>q<=" ";--显示数字9endcase;endendlibraryentityyimaisportd:instd_logic_vector(3downto0);q:outstd_logic_vector(6downto0));endarchitectureyimadispofyimaiscomponentdispisportd:instd_logic_vector(3downto0);q:outstd_logic_vector(6downto0));u4:dispportmap(d,q);endyimadisp;loopendloop标号:for循环变量inendloopwhileloopendloop标号;跳出循环语句(next、 语句next循环(loop)next循环(loop)when条件表达式;--有条件或者无条件的结束当前循环开始下一exitexitloop标号exitloop标号when条件表达式;--loop至程序标号处。如果后面return;--只能用在过程体中。null五、状态机根据状态机的工作是否需要外部输入信号,它被分为Mealy型和Moore型两种。Mealy型前状态信号。状态机框图如图5-1所示。 reset5-、状态机类型定义语句 isof基本数据类型;type数据类型名is数据类型定义;types_stateis(s0,s1,s2,s3,s4);state_machine_stepper_motor综合实5-libraryuseIEEE.STD_LOGIC_1164.ALL;useclk,dir:inq:outstd_logic_vector(3downto0));endentitystate_machine_stepper;architecturebj_moterofstate_machine_stepperistyepstate_typeis(s1,s2,s3,s4);if(clk'eventandclk='1')thenif(dir='1')thencasestatewhen"s1"=>state<=s2;when"s2"=>state<=s3;when"s3"=>state<=s4;when"s4"=>state<=s1;endcase;casestatewhen"s1"=>state<=s4;when"s2"=>state<=s1;when"s3"=>state<=s2;when"s4"=>state<=s3;endcase;endif;endif;endprocess;withstateq<="0010"withq<="1000"withendmotor综合实例5-libraryuseieee.std_logic_arith.all;entitymotorisps:instd_logic_vector(15downto0);seg7:outstd_logic_vector(7downto0);mq,segctr:outstd_logic_vector(3downto0));endentity;architecturemotor_bravofmotorsignalcnt:std_logic_vector(15downto0);signalscnt:std_logic_vector(7downto0);signalsdat:std_logic_vector(3downto0);ifclk'eventandclk='1'thenif(cnt>ps)thenendcasecnt(1downto0)when"00"=>mq<="0011";when"01"=>mq<="0110";when"10"=>mq<="1100";when"11"=>mq<="1001";endcase;endif;endifsysclk'eventandsysclk='1'then casescnt(7downto6)when"00"=>sdat<=cnt(3downto0);when"01"=>sdat<=cnt(7downto4);when"10"=>sdat<=cnt(11downto8);when"11"=>sdat<=cnt(15downto12);endif;endcasesdatwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenendendprocess;endmotor_brav;思考:分析motor功能,并画出其状态流程图和对外电路框图符号、时序电路时钟的表述方法分频实例5-2。libraryuseieee.std_logic_1164.all;entityfenpinport(clk:inp:outq:outstd_logic);architecturefenpinoffenpinsignalcount:std_logic_vector(15downto0);signalq1:std_logic;if(clk'eventand 111111")then20MHz时钟分频为2Hzelsecount<=count+1;endif;endprocess;libraryieee;useentitydffisport(clk,d:inrst:instd_logic; q:outstd_logic);architecturenakeofdffissignalq1:std_logic;if(clk'eventandclk='1')then endif;endprocess;六、实验篇电路为时序逻辑电路。信号在FPGA器件中通过逻辑单元连线时,一定存在延时。延时多的瞬间,就产生了“竞争”,如毛刺。可编程逻辑器件FPGA开发与应用实验(一)实验目的 2、熟悉使用硬件描述语言→VHDL (二)实验要求扫描或静态扫描显示、LED点阵显示各种字符和图形或静止或移动等方式、LCD液晶显示 (三)实验内容FPGA目标器件输入和输出引脚绑定时,输入引脚绑定高/低电平、单脉冲、各种分频连续脉冲等多种信号,输出引脚可绑定发光二极管、七段数码管、LED点阵等显示3、在完成1位十进制计数器的基础上,可增加完成2或3等多位十进制计数器逻辑功能特别提示:其接口电路与FPGA目标器件引脚绑定信息详见表7-10和7.3、7.4章节(四)实验报告要求为了快速掌握开发流程,实验指导书中给出2个实例,操作过程请参看7.6集成开发环境使用章节(P58页)。特别提示:→文件名与实体名必须一致,工程名也可以与它们一致。实例 设计一个4位二进制加法计数器,具有、启动控制功能等接口信号与目标器件引脚(绑定)连接:输入信号clk时钟→Pin152、rst→Pin1、d烧写配置文件格式:*.sof或*.pof。clk时钟→Pin152SW7旋转分频开关、rst→Pin1和d启动控制→Pin2对应位置在实验箱左下部分粉红色开关组左边开始第一rst、d都为“1SW71Hzuseieee.std_logic_1164.all;useentitycount4 port(clk,d:instd_logic --inrst:instd_logic; q:outstd_logic_vector(3downto0));endentitycount4;architecturebhvofcount4issignalq1:std_logic_vector3downto0);--4q1if(clk'eventandclk='1')then endif;endq<=q1;--把中间结果赋值给对外输出变量q architecturebhv;思考2怎样修改成4位二进制减法计数器,具有、启动控制功能等4位二进制加法4位二进制加法 2逻辑方程:sum=a⊕b;carry=a*b烧写配置文件格式:*.sof或*.pof。a→Pin1、b→Pin2对应位置在实验箱左下部分粉红色开关组左边开始第位sum(和a、b,可否得到正确结思考1:一位半加器电路采用VHDL语言实验。 、门电路系列实验(任选一个实验、组合逻辑系列实验(任选一个实验1、编(8-3编或优先编2、译(3-8译,BCD-7段显示译 3、触发器系列实验(任选一个实验,规则自已分析确定3、D 4(12、码计数器(注意:对于一般的二进制或十进制计数器,在计数时,将有多位 4、 6、状态机逻辑系列实验(任选一个实验.、综合系统逻辑系列实验任选一个实验,规则自已分析确定)4、4X4键盘输入扫描和计算显示结果功能(计算器七、FPGA实验平台简介FPGA软硬件提供商主要有:1)AL 环境软件为MaxplusII系列和QuartusII系列。2)XILINX是FPGA的发明者。其开发环境软件为Foundition系列和ISE系列。全球PLD/FPGA产品60%以上是由 和采用以AL 公司Cyclone系列FPGAEP1C6Q240为实验平台,其外围的接口电路与平台某些引脚已经联接,在进行引脚绑定时需参看FPGA管脚与各接、AlFPGAEP1C6Q24066MHZ32ASSPASIC器件连接,Al提供了一种低成本的串行配置方案。CycloneFPGA的应用主要是定位在终端市场,如消费电子、计算机、工业和汽车等领域。CycloneEP1C6Q240外形如图7-1所示和引脚定义如图7-2所示。CycloneEP1C6Q240外形图7- 1、Cyclone系列器件特性Feature特LEs逻辑M4KRAMTotalRAMbits总RAMPLLs锁相12222用户I/O最多引脚2、Cyclone系列器件可选封装和I/O引脚数7-Cyclone系3、Cyclone系列器件I/OBanks布局7-Cyclone1C64IOBank,IOBank1Bank3IOBank2和Bank4不支持3.3VPCI标准,Bank2Bank4带有DQS、DSDM,可以和DDRSDRAMFCRAM接口,请注意IOBank3JTAG管脚必须接2.5V。Bank使用差分电压支持差分接口。VREFIOBank不使用电压参考标准,这一管脚可以用作一般的IO口。VCCIOBankVCCIO3.3V时,FPGA可以和LVTTL、LVCMOS、3.3VPCI和SSTL-3的所有输入信号、输出信号接口。4、CyclonedeviceIOEs持1)3.3-V2)2.5-V3)1.8-V4)1.5-V5)3.3-VSSTL-2classIandII8)SSTL-3classIandII9)DifferentialSSTL-2classII(onoutputclocks5、CycloneFPGAEP1C6Q2401)59802)20M4KRAM块支持外扩器,包括DDR支持多种知识(IP),包括Al 的megacore和Al megafunctions合作伙伴程序megafunctions。6、CycloneEP1C6(12)Q模块分布7-7、CycloneEP1C6Q资源分M4KLAB逻辑阵列LAB逻辑阵列ColumnsBlocks模128、CycloneEP1C6240C8引脚布局712CRC3456789、实验平台硬件接口电路功能实验箱实物面板布局图7-1、电源单元(a)(b)--2、输入单元8bitDIP开关0.1-40MHz十组时钟(0.1、、、 、K、10K、100K、1M、10M、40M)各4×4矩阵(扫描)键盘3、输出单元LED×7段(独立/扫描)12864LCD字型及绘图显示器8×8点阵彩色显示器扬声器4、接口单元USB接口PS/2接口VGA×18X8X8阶彩色RS-2325、扩展单元(a)8bits (b)8bits (c)256Kbits(d)模拟可编程器件 (e)单片、输入有源信号1、电电源实物布局图7- 电源转换电路图7-特别需要强调的是:3.3V的电源有两个,UP2转换+3.3VFPGA供电,UP1转换+3.3Vex电源给除FPGA以外的所有和器件供电。显然这两个电源是共地的,可以示和转换电路如图7-9所示。2、逻辑电平输入信号——8bitDIP开关逻辑电平输入电路 逻辑电平输入电路布局图7- 逻辑电平输入电路图7-K1~K24FPGAI/O7-57-3、单脉冲输入信号到左侧“P”J23、J24接到“M”J25、J26接到右侧“M”时,输出为电平转换模式。在用该模块时最好使用消抖电路。单脉冲输入单脉冲输入信号实物布局图7-4、连续脉冲输入信号10Hz、100Hz、1KHz、10KHz,100KHz、1MHz、10MHz、40MHz共十组时钟信号,由指拨旋转开关SW7(GCLK1—PIN152)选择接通EPM3064输出各个频率;另外由SW17-13-1GCLK17-13-2所示。EPM3064AlCPLD电可擦写EEprom可编程逻辑,1250个用户可编程门单元、64个宏单元、4个逻辑阵列块、电压内核为3.3V、传输延迟时间仅4.5ns、计数频率222.3MHz、输入/输出引脚兼容2.5V/3.3V/5V66IOJTAG接口、能进行ISP编程。连续脉冲输入信号实物布局图7-13-脉冲计数来控制分脉冲计数来控制分GCLK2连续脉冲信号电路框图7-13-5、4X4键盘输入信号IO90、IO91、IO92、IO93为行信号,IO94、IO95、IO96、IO97为列信号。而列信号10KΩ的电阻。键盘实物布局如图7-14所示和电路如图7-15所示。键盘实物布局图7- 键盘电路图7-7-、显示方式(供输出信号选择不同显示效果1、LED显示方LED显示实物布局图7-LED显示方式电路图7-7-2、七段数码管显示方式7段数码管实物布局图7-7段数码管电路7-7FPGAI/O7-7-O50――FPGAP73M124――FPGASO58――FPGAP83O51――FPGAP74M125――FPGAO52――FPGAP75M126――FPGAO53――FPGAP76M127――FPGAO54――FPGAP77M128――FPGAO55――FPGAP78M129――FPGAO56――FPGAP79M130――FPGASO64――FPGAP93O57――FPGAP82DPM131――FPGADP1~DP8为共阴七段码显示码,工作方式有独立和扫描两种显示类型。7段数码管实物布局如图7-18所示和电路如图7-19所示。JP3~JP10置左端“S”()处,若右侧八位短路夹置JP1处选择段控SO50~SO57信号,若右侧八位短路夹置JP2处选择扩展段控完成,各信号对应关系表7-7。8DIGITAL7-SEGMENTDISY“O50,O51,O52,O53,O54,O55,O56,O57”驱动或是改由M124,M125,M126,M127,M128,M129,M130,M131等驱动。3、米字型数码管显示方式米字型数码管实物布局图7-米字型数码管电路图7-7-O50――FPGAP73SO58――FPGAP83O51――FPGAP74SO59――FPGAP84O52――FPGAP75SO60――FPGAP85O53――FPGA SO61――FPGAP86O54――FPGA SO62――FPGAP87O55――FPGA SO63――FPGAP88O56――FPGA SO64――FPGAP93O57――FPGA SO65――FPGAP944、8X8点阵显示方式8X8点阵内部结构图7-可以显示红色、绿色、黄色(R、G同时有效)。引脚3、6、9、12、13、16、19、22分别为8行每个LED点阵的公共端(COMSCx),引脚23和24、20和21、17和、 和、和、和、和7、11和10分别为8列每个LED点阵的输入端(R、G)。8X8点阵内8X8点阵实物布局图7- 8X87-24(R=100X167-O41――FPGAPIN61O50――FPGAPIN73SO58――FPGAPIN83COMO42――FPGAPIN62O51――FPGAPIN74SO59――FPGAPIN84COMO43――FPGAPIN63O52――FPGAPIN75SO60――FPGAPIN85COMO44――FPGAPIN64O53――FPGAPIN76SO61――FPGAPIN86COMO45――FPGAPIN65O54――FPGAPIN77SO62――FPGAPIN87COMO46――FPGAPIN66O55――FPGAPIN78SO63――FPGAPIN88COMO47――FPGAPIN67O56――FPGAPIN79SO64――FPGAPIN93COMO48――FPGAPIN68O57――FPGAPIN82SO65――FPGAPIN94COM5、LCD显示方LCDM实物布局图7- 关系如表7-8。表7-7-1-923-456E7LED背景灯8LED背景灯实验平台FPGAEP1C6Q240C8引脚与负载区各接口电路口电路I01已经连接。表7-、集成开发环境使用7-7-下面开始源程序的输入等系列方法步骤,针对Al CycloneQuartusII文件构造编辑方1、文本编辑源程序文件步骤指定新工程名。方法是选择File→NewProjectWizard→选中后,点击依次出现以下信息界面,如图7-29。7-7-7-7-7-7-选择第EDA工具;可选择第EDA软件进行必要的仿真,否则点7-7-(2)File→New→DesignTclScript、VerilogHDL、VHDL等类型模式可选择。7-7-7-面,如图7-40。7-注意:文件名与顶层文件中实体名要一致,否则软件编译会出错。7-编译正确为止,如图7-42。7-7-SourceandProbes、LogicyzerInterfaces、SignalTapIILogicyzer、VectorWaveformFile等类型模式可选择。7-7-7-现以下信息界面,如图7-47。7-7-7-7-7-7-7-7-7-7-7-Assignments→Setting→SimulatorSetting…,Processing→GenerateFunctionalsimulationNetlist→单击波形仿真按钮,如图7-58。7-7-7-7-7-7-7-7-7-7-7-7- 7-7-下载电缆硬件设置HardwareSetup右边显示的是当前采用的烧录设备,有7-提供线电缆方式进行选择,如图7-72、7-73。7-In-SocketProgramming、PassiveSerial四种模式,针对不同模式选择不同的文件。如图d)ActiveSerialProgramming*.pofd)ActiveSerialProgramming*.pof7-7-还可以应用其它功能。如以下项目:(12)RTLViewerTools→Netlistviewers→RTLViewer(13)使用TechnologyMapViewerTools→Netlistviewers→RTLTechnologyMapViewer。(14)File→Create/update→CreateSymbolFileforCurrentFile→生成*.bsf格式2、原理图和图表模块编辑步骤选择第EDA工具这部分操作步骤可仿照文本源文件设置方法进行设置AHDL、BlockDiagram/Schematic、E

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论