版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
广州市星翼电子科技淘宝淘宝技术支持(开源):资料: E-咨询传真号码团队:正点原子团正点原子,做最全面、最优秀的嵌入式开发平台软硬件供应商友友情提示如果您想及时免费获取“正点原子公众平台及时给您发资料,敬请关注正点原消息和重要资料“扫一扫”,扫描右 ,添加关 →添加朋友→输入“alientek_stm32”→关内容简 第一 硬件 第一章FPGA简 FPGA的由来与特 FPGA的基本结 FPGA的设计流 第二章实验平台简 ALIENTEK开拓者EP4CE10开发板资源初 ALIENTEK开拓者FPGA开发板资源说 硬件资源说 软件资源说 开拓者IO引脚分 第三章硬件资源详 开发板原理图详 时钟输 JTAG接 时钟/复位/按键电 有源蜂鸣 电容触摸按 数码 RS232接 RS485接 VGA接 MCULCD模块接 RGBLCD模块接 红外接收 单总线接 实时时 环境光传感 AD/DA接 I2S音频编 以太网接口(RJ45 CAN接 USB串 OLED/头模块接 SD卡接 SPI WIRELESS模块接 引出IO FPGA电源设 电源适配器输入接 电源按键开 电压转换电 电源输入输出接 开发板使用注意事 FPGA的学习方 第二 软件 第四章QuartusII软件的安装和使 QuartusII软件的安 USBBlaster驱动安 QuartusII软件的使 新建工 设计输 配置工 分析与综合(编译 分配引 编译工 程 SignalTapII软件的使 第五章软件的安装和使 的安 的使 手动仿 自动仿真(联合仿真 第三 语法 第六章VerilogHDL语 Verilog概 Verilog简 为什么需要 Verilog和VHDL区 Verilog和C的区 Verilog基础知 Verilog的逻辑 Verilog的标识 定 规范建 Verilog的数字进制格 Verilog的数据类 寄存器类 线网类 参数类 Verilog的运算 算术运算 关系运算 逻辑运算 条件运算 位运算 移位运算 拼接运算 运算符的优先 Verilog程序框 注 关键 程序框 Verilog高级知识 阻塞赋值 非阻塞赋值(Non- assign和always区 带时钟和不带时钟的 什么是 状态 Mealy状态 Moore状态 三段式状态 模块化设 Verilog编程规 编程规范重要 工程组织形 文件头输入输出定 prameter定 wire/reg定 信号命 always块描述方 assign块描述方 空格和 注 模块例 其他注意事 第四 实战 第七章流水灯实 LED灯简 实验任 硬件设 程序设 验 第八章按键控制LED灯实 按键简 实验任 硬件设 程序设 验 第九章按键控制蜂鸣器实 蜂鸣器简 实验任 硬件设 程序设 验 第十章触摸按键控制LED灯实 触摸按键简 实验任 硬件设 程序设 验 第十一章静态数码管显示实 数码管简 实验任 硬件设 程序设 验 第十二章动态数码管显示实 数码管动态显示简 实验任 硬件设 程序设 验 第十三章IP核之PLL实 PLLIP核简 实验任 硬件设 程序设 验 第十四章IP核之RAM实 RAMIP核简 实验任 硬件设 程序设 验 第十五章IP核之FIFO实 FIFOIP核简 实验任 硬件设 程序设 验 第十六章UART串口通信实 UART串口简 实验任 硬件设 程序设 验 第十七章RS485串口通信实 RS-485简 实验任 硬件设 程序设 验 第十八章VGA彩条显示实 VGA简 实验任 硬件设 程序设 验 第十九章VGA方块移动实 VGA简 实验任 硬件设 程序设 验 第二十章VGA字符显示实 VGA简 实验任 硬件设 程序设 验 第二十一章VGA显示实验(基于 VGA简 实验任 硬件设 程序设 验 第二十二章RGBTFT-LCD彩条显示实 RGBTFT-LCD简 实验任 硬件设 程序设 验 第二十三章RGBTFT-LCD字符显示实 RGBTFT-LCD简 实验任 硬件设 程序设 验 第二十四章红外实 红外简 实验任 硬件设 程序设 验 第二十五章DS18B20数字温度传感器实 温度传感器DS18B20简 实验任 硬件设 程序设 验 第二十六章DHT11数字温湿度传感器实 DHT11简 实验任 硬件设 程序设 验 第二十七章频率计实 等精度频率计简 实验任 硬件设 程序设 验 第二十八章EEPROM读写测试实 EEPROM简 实验任 硬件设 程序设 验 第二十九章环境光传感器实 AP3216C简 实验任 硬件设 程序设 验 第三十章实时时钟数码管显示实 PCF8563简 实验任 硬件设 程序设 验 第三十一章AD/DA实 PCF8591简 实验任 硬件设 程序设 验 第三十二章音频环回实 WM8978简 实验任 硬件设 程序设 验 第三十三章SDRAM读写测试实 SDRAM简 实验任 硬件设 程序设 验 第三十四章机实 WM8978简 实验任 硬件设 程序设 验 第三十五章OV7725头VGA显示实 OV7725简 实验任 硬件设 程序设 验 第三十六章OV7725头RGBTFT-LCD显示实 OV7725简 实验任 硬件设 程序设 验 第三十七章OV5640头VGA显示实 OV5640简 实验任 硬件设 程序设 验 第三十八章OV5640头RGBTFT-LCD显示实 OV5640简 实验任 硬件设 程序设 验 第三十九章SD卡读写测试实 SD卡简 实验任 硬件设 程序设 验 第四十章SD卡显示实验(VGA显示 SD卡-VGA显示简 实验任 硬件设 程序设 验 第四十一章SD卡显示实验(LCD显示 SD卡-LCD显示简 实验任 硬件设 程序设 验 第四十二章音乐器实 音乐器简 实验任 硬件设 程序设 验 第四十三章以太网通信实 以太网简 实验任 硬件设 程序设 验 第四十四章以太网传输(VGA显示 SDRAM-VGA显示简 实验任 硬件设 程序设 验 第四十五章以太网传输(LCD显示 SDRAM-LCD显示简 实验任 硬件设 程序设 验 第四十六章基于OV7725的以太网传输实 以太网传输简 实验任 硬件设 程序设 验 第四十七章基于OV5640的以太网传输实 以太网传输简 实验任 硬件设 程序设 验 第四十八章基于以太网的板对板音频互传实 板对板音频互传简 实验任 硬件设 程序设 验 第四十九章交通灯实 交通信号灯简 实验任 硬件设 程序设 验 第五十章高速AD/DA实 高速AD/DA简 实验任 硬件设 程序设 验 第五十一章基于FFTIP核的音频频谱仪实 FFTIP核简 实验任 硬件设 程序设 验 内容简不会有任何编译错误。另外,源代码有我们生成好的sof文件(用于程序的文件),大家 Cyclone系列FPGA先后推出了Cyclone/II/III/IV/V等系列产品,而CycloneV是具有基于ARM的硬核处理系统的SocFPGA型号,对于使用FPGA的通用逻辑设计开发来说,CycloneIV系列FPGA是更好的选择。CycloneIV系列FPGA采用经过优化的低功耗工艺,和前一代相比,拓展了前一代CycloneIIIFPGA低功耗的优势,并且简化了电源分配网络,非常具有性价比。CycloneIV系列FPGA具有丰富的型号,如EP4CE6/EP4CE10/EP4CE15等多种型号,开拓者初学者,本手册将手把手的教你如何使用FPGA的开发软件QuartusII, 第一 硬件第一章FPGAFPGA是FieldProgrammableGateArray的简称,也就是现场可编程门阵列。它是一种半FPGA自20世纪60年代以来,数字集成电路经历了从SSI(SmallScaleIntegratedcircuit,小Integratedcircuit,大规模集成电路)到VLSI(VeryLargeScaleIntegratedcircuit,超第三类是集成电路ASIC(Application-SpecifticIntegratedCircuit)。电路或电子系统设计在一个上,构成单片集成系统。ASIC分为全定制和半定制两类。的PLD由输入电路、与阵列、或阵列和输出电路组成,如图1.1.1所示,而任意一个组合逻辑1.1.1典型的PLD早期的PLD产品主要有编程阵列逻辑PAL(ProgrammableArrayLogic)和通用阵列逻辑GAL(GenericArrayLogic)。PAL由一个可编程的“与”平面和一个固定的“或”平面构成,补一20世纪80Altera(现已被In In 可编程事业部——PSG)和Xilinx公司在PAL、GAL等逻辑器件的基础上,分别推出了复杂可编程逻辑器件CPLD(ComplexProgrammableLogicDeice)和现场可编程门阵列FPGA,同以往的PALGALCPLD/FPGA它替几至块用IC。这样的CPLD/FPGA实际上就是一个子系统部件。这种FGPA能做什么呢?可以毫不夸张地讲,FGPA能完成任何数字器件的功能,上至高性能CPU,传统的原理图输入或硬件描述语言(如VerilogHDL、VHDL)自由地设计一个数字系统。通过软件仿真,可以事先验证设计的正确性。在PCB(电路印制板)完成以后,还可以利用FGPA的优点是不需要编程器,编程、调试和都很方便。(ICRIReconfigurable)的PLD或可重配置硬件(RHP:RecontfigurableHardwareProduct)。FPGA的基本结嵌入式块RAM、丰富的布线资源、底层嵌入功能单元和内嵌硬核等,如下图所示。可编程IO单 可编程逻辑单功能单硬布资 嵌入块1.2.1FPGA输入/输出(Input/Ouput)单元简称I/O单元,它们是与外界电路的接口部分,完成不气特性下对输入/输出信号的驱动与匹配需求,为了使FPGA具有更灵活的应用,目前大(LUT,LookUpTable)和寄存器(Register)组成。FPGA内部查找表一般为4输入,查找表逻辑单元通常被称为LE(LogicElement),由一个寄存器加一个LUT构成。Altera大多数FPGA将10个LE有机地组合在一起,构成更大的功能单元——逻辑阵列模块(LAB,LogicArray每个部分都由一个寄存器加一个LUT组成,被称为LC(LogicCell,逻辑单元),两个LC之间PF(rogramabFunctionUnin,可编程功能单元),它是由8个LUT和8~9个寄存器构成,当然这些可编程逻辑 Altera的CycloneIV器件族的EP4CE10的LUT数量是10320个,就比前面提到的两款FPGA规模略级、时钟资源、I/O特性、封装、功能模块等诸多因素综合考虑进来。嵌入式块目前大多数FPGA都有内嵌的块RAM(BlockRAM),FPGA内部嵌入可编程RAM模块,大大地双口RAM,CAM,FIFO等常用结构。RAM的概念和功能读者应该非常熟悉,在此不再赘述。讲,RAM是一种根据地址读,写数据的单元;而CAM和RAM恰恰相反,它返回的是端口数据不同器件商或不同器件族的内嵌块RAM的结构不同,Xilinx常见的块RAM大小是4kbit和部同时含有3种块RAM结构,分别是M512RAM,M4KRAM,M9KRAM。目前大多数FPGA厂商都在FPGA内部集成了DLL或者PLLFPGA产品集成的DLL和PLL资源越来越丰富,功能越来越复杂,精度越来越高。Altera集成的是PLL,Xilinx集成的是LL,Lattice的新型FPGA同时集成了PLL与DLLAltera的PLL模块分为增强型PLL和快速PLL等。XilinxDLL的模块名称为CLKDLL,在高端FPGA中,CLKDLL的增强型模块为DCMHD配关,动IP文逐步过渡到系统级设计平台。例如Altera的StratixIV、StratixV等器件族内部集成了DSPII和VirtexIIpro系列FPGA内部集成了PowerPC450的CPUCore和MicroBlazeRISC处理器是EDK和PlatformStudio;Lattice的嵌入式DSP开发工具是的。内嵌硬FPGA的设计流1.3.1FPGA常用的专业综合优化工具有Synplicity公司的Synplify/SynplifyPro和MentorGraphics公司它与实际的配置情况还有较大差距。此时应该使用FPGA/CPLD厂商提供的软件工具,根据所选的型号,将综合输出的逻辑网表适配到具体FPGA/CPLD器件上,这个过程就叫布局和布线(PlaceAndRoute)。因为只有器件开发商最了解器件的内部结构,所以布局和布线必须合理地适配到FPGA内部的固有硬件结构上,布局的优劣对设计的最终实现结果(在速度和面积真的主要目的在于发现时序(TimingViolation),即不满足时序约束条件或者器件固有用Quartus内嵌时序分析工具完成静态时序分析(STA,StaticTimingyzer),或者使用辑分析仪(LA,Logicyzer)是逻辑设计的主要调试工具,传统的逻辑功能板级验证对于相对简单一些的设计,使用QuartusII内嵌的SignalTapII对设计进行逻辑分析可以较好地解决上述。SignalTapII是一种FPGA片内信号分析工具,它的主要功能是根据用户设定的触发条件将信号实时地保存到这些BlockRAM中,然后通过JTAG口传送到计算第二章实验平台简介ALIENTEK开拓者EP4CE10开发板资源初首先,我们来看开拓者FPGA.1开拓者FPGA1路RS232串口(母)接口,采用SP32321个标准的2.4/2.8/3.5/4.3/7寸MCUTFT-LCD接口,阻/电容触摸1个电源开关,开发板的电设计灵活。板上很多资源都可以灵活配置,以满足不同条件下的使用。其中两(32M字节)和64Kbit(8K字节)的EEPROM,满足大内存需求和大数据。板载高性能音频编、百兆网卡、环境光传感器以及其它各种接口,满足各ALIENTEK开拓者FPGARGBTFT-LCD这是开发板板载的RGBLCD接口(LCD),可以连接各种ALIENTEK的RGBLCD屏模块,并且和FPGA器(调试器)连接,用于程序或者对程序进行调试。口还可以给开发板提供电源,但是其最大电流只有500mA,大家在做LCD显示实验或者高速轻松应对各种大内存需求场景,比如头图像数据、数据等。这是开发板自带的一个8Ω2W的小喇叭(SPEAKER),放音乐。该喇叭由WM8978直接驱动,最大输出功率可达0.9W这是开发板的板载蜂鸣器(BEEP),可以实现简单的/闹铃这是开发板的红外接收头(U11),可以实现红外功能,通过这个接收头,可以接收开拓者FPGA开发板给大家配备了一个小巧的红外,该外观如图这是开发板的一个RTC实时时 (U12),开拓者FPGA开发板上的实时时 这是开发板的一个单总线接口(U9),该接口由4个镀金排孔组成,可以用来接、DAC输出、DAC输出、电容触摸按键、DACADC自测等,所有这些功能,你只需要通入通道上,可以实现的功能。流过500mA)。这是开发板板载的一个外部电源输(DC_IN),采用标准的直流电源插座。开发板板载了DC-DC(MP2359),用于给开发板提供高效、稳定的5V电源。由于采用了DC-DC,大家,RS485通信的时候,必须A接A,B接B,否则可能通信不正常!以太网接口接口来驱动VGA显示器,使其显示出彩条、以及图像等。414Kbits的嵌入式资源、23个18×18的嵌入式乘法器、2个通用锁相环、10个全局时钟网络、8个用户I/OBANK和最大179个用户I/O,是一款非常具有性价比的。这个外部的程序在掉电后是不丢失的,这个外部就是FPGA的配置。配置EEPROM1234567OV7725头RGBTFT-LCD显示实89OV5640头RGBTFT-LCD显示实SD卡显示实验(VGA显示SD卡显示实验(LCD显示VGA显示实验(基于以太网传输(VGA显示RGBTFT-LCD以太网传输(LCD显示RGBTFT-LCD基于FFTIP从上表可以看出,ALIENTEKFPGA开发板的例程是非常丰富的,并且扩展了很多有价值的系统时钟系统时钟,频率系统复位按键按键按键按键4个LEDEPCSSPIEPCSSPIEPCSSPIEPCSSPI数码管段选数码管段选数码管段选数码管段选数码管段选数码管段选数码管段选数码管段选RS485RGBTFT-LCDRGBLCDRGBLCDRGBLCDRGBLCDRGBLCDRGBLCDRGBLCDRGBLCDRGBLCDRGBLCDRGBLCDRGBLCDRGBLCDRGBLCDRGBLCDRGBLCDRGBLCDRGBLCDRGBLCDRGBLCDRGBLCDRGBLCDMCUTFT-LCD命令/数据控制(0:命令数据单总线IIC总线(EEPROM/环境光传感器/RTC实时时钟/音频配置ADDAIICADDAIIC音频SDRAM时SDRAMSDRAMSDRAMSDRAMSDRAMSDRAMBankSDRAMBankSDRAMSDRAMSDRAMSDRAMSDRAMSDRAMSDRAMSDRAMSDRAMSDRAMSDRAMSDRAMSDRAMSDRAMSDRAMSDRAMSDRAMSDRAMSDRAMSDRAMSDRAMSDRAMSDRAMSDRAMSDRAMSDRAMSDRAMSDRAMSDRAMSDRAMSDRAM头接口cmoscmoscmoscmoscmoscmoscmos(0:使用引脚XCLK1:头自带的晶振提供时钟cmosIICcmosIICcmoscmoscmoscmoscmoscmoscmoscmosSD卡(SPI模式SD卡(SDIO模式MII输入数据MII输入数据MII输入数据MII输入数据MII输出数据MII输出数据MII输出数据MII输出数据无线NRFSPINRFSPINRFSPINRFSPINRFATK第三章硬件资源详解开发板原理图详耗和性价比优势,它拥有个逻辑单元、Kbits的嵌入式资源、23个18×18的嵌入式乘法器、2个通用锁相环、10个全局时钟网络、8个用户IOBANK和最大179个用户I/O,了解达到最佳的性价比。具体这些资源在设计中怎么使用,在后续章节为大家介绍。一个Bank中的所有IO供电相同,而各个Bank的IO供电可以不同。FPGA的8个I/OBANK的引脚连BANK1、BANK2BANK3、BANK4BANK5、BANK6BANK7、BANK8相环PLL产生,如SDRAM的驱动时钟100MHz。JTAGJTAG图时钟/复位/图RS232RS232因此当计算机与FPGA通信时,需要一个电平转换,这里我们选择的是SP3232(也可以用RS485图RS485RS485电平为LVDS电平,也不能直接连接到FPGA,同样需要电平转换。这里我们使用SP来做电平转换,其中R6为终端匹配电阻,而R3和R2,则是两个偏置电阻,以保证静VGA图VGA权电阻网络全1Rx=3.3× =(𝑅𝑥+可得等效电阻Rx=271.6Ω,R=526.3Ω。考虑到所有电阻(使用的是贴片电阻)都必MCULCDALIENTEK开拓者FPGA开发板板载的MCULCD图MCULCD图中MCULCD是一个通用的液晶模块接口,支持ALIENTEK全系列TFTLCD模块,包括寸、2.8寸、3.5寸、4.3寸和7寸等尺寸的TFTLCDRGBLCDALIENTEK开拓者FPGA开发板板载的RGBLCD图RGBLCD图中,J1(RGBLCD)就是RGBLCD接口,采用RGB565数据格式,并支持触摸屏(阻是复用的,所以在开发板上不可以同时使用MCULCD液晶屏和RGBLCD液晶屏!图就可以用红外来控制开发板了。REMOTE_IN为红外接收头输出的信号,即FPGA的红外输图该接口支持DS18B20(温度传感器)/DHT11(温湿度传感器)图图实时时钟为PCF8563,采用直接供电(VCC3.3)和备用电源供电两种供电方式,采用图图AD/DA开拓者开发板上板载的AD/DA器件为采用IIC协议进行通信的PCF8591AIN0/AIN1/AIN2/AIN3为模拟输入接口,AOUT为模拟输出接口。ADDA_SCL接在FPGA的E9上,图 高性能DAC&ADC,可以最高192K@24bit的音频信号,并且自带段EQ调节,支持3D音效等功线输出的驱动,减少了应用时必需的外部组件,直接可以驱动耳机(16Ω@40mW)和喇叭可用于机实验,实现。PHONE是3.5mm耳机输出接口,可以用来插耳机。LINE_IN则是线路输入接口,可以用来外接线路输入,实现立体声。IIC_SDA和IIC_SDA是与AP3216C等图 以太网接口(RJ45图这里我们选择的是RTL8201这颗作为FPGA的PHY用于以太网通信。RTL8201是一块图图USB串口/串口1图中TXD/RXD是相对CH340G来说的,也就是USB串口的发送和接收引脚。而UART1_RX和则CMOS_PWDN和CMOS_XCLK不需要接(在板上靠左插即可),如果是头模块,则需要用到全SDSPIALIENTEK开拓者FPGA板载的SPIFLASH (完全兼容 图ATK图/CFR图引出IOFPGA有6种可选值。CycloneIVFPGA器件供电示意图如下:图CycloneIVE由图可知,开拓者开发板上的IOBANK统一用3.3V供电,以提供足够大的供电电压。另外图DC_IN用于外部直流电源输入,输入电压(12V)经过U16DC-DC转换为5V电源输出,图VBTN为电源适配器输入的12V电压经电源转换转换后得到的5V电压,VUSB为通过USB图图开发板使用注意事不行,可以通过串口看看LCDID是否正常,再做进一步的分析。半功倍,希望大家细读!另外ALIENTEK开发板的其他资料及更新,都可以在技术到,大家可以经常去这个获取更新的信息FPGA的学习方需要知道PLL是用来产生不同频率的时钟,如使用SDRAM时需要产生100MHz的驱动时钟,使用设计才能发挥硬件的性能,而软件的精髓在于代码。学习FPGA也是这样,VerilogHDL做为一一条指令的串行运行,所以软件设计语言是基于串行的设计思想,因而在写VerilogHDL代码的时候要注意这种差别。另外对于VerilogHDL的基本语法是务必要掌握的,如一般常用的module/endmodule、input/output/inout、wire/regbegin/endposedge/negedge、always/assign、if/else、case/default/endcase/parameter/localparam等关键字要清楚它们的作用和区别。掌握了VerilogHDL的基本语法和VerilogHDL的并行设计思想后,会觉得VerilogHDL和C语言一样简单。 第二 软件上一篇,我们介绍了本手册的实验平台,本篇详细介绍FPGA的开发软件(Quartus第四章QuartusIIFPGA设计流程。本章学习如何安装QuartusII软件以及QuartusII软件的使用方法,为QuartusIIQuartusIISignalTapIIQuartusII软件的安下来我们安装QuartusII13.1(以下简称Quartus)版本的软件。首先在开拓者FPGA开发板资料盘(B盘)→QuartusII_13.1文件夹下找到Quartus的安装包文件(注意:由于光盘容量有限,FPGA开发软件QuartusII和仿真软件放在B盘),4.1.1所示:我们直接点击【Next>4.1.3先选中“Iaccepttheagreement”,然后点击【Next>】,进入如图4.1.4字符等。接下来点击【Next>】,进入如图4.1.5所示页面。件夹下,软件在这里已经自动检测出器件,我们保持默认全部勾选的页面,点击【Next>】,进入如图4.1.6所示页面。一段时间的等待之后,Quartus软件安装完成,进入如图4.1.8所示页面。至此,Quartus软件安装完成,我们直接点击【Finish4.1.9和图图4.1.10Quartus使用页在LicenseSetupRequired页面中可以选择30天试用期,也可以通过正版的Altera的License等途径来正常使用(请查看安装包下“安装说明.txt”)。USBBlaster驱动安USBBlaster是AlteraFPGA的程序器,通过计算机的USB接口对Altera的FPGA和配置进行编程、调试以及等操作。电脑必须在安装驱动后,USBBlaster才能正常工作,器】,打开后的界面如图4.2.1所示。4.2.1号,说明电脑已经识别到器,但设备的驱动没有安装。右击选中【USB-Blaster】,并选择【更新驱动程序软件(P)...】,如图4.2.2和图4.2.3所示界面。4.2.24.2.34.2.4Quartus安装驱动程序,安装程序完成后进入如图4.2.6所示页面。4.2.6从上图中的页面,我们可以看到,AlteraUS-Blaster驱动更新完成,然后直接点击【关闭】即可。这时刷新一下设备管理器,在通用串行总线控制器里出现了AlteraUSB-Blaster,并且图标前面的感叹号已经没有了,说明器已经可以正常使用了,如图4.2.7所示。QuartusII软件的使软件的使用流程,如图从上图可以看出,首先打开Qars软件,然后新建一个工程,在新建工程的时候,我们可以通过创建工程向导的方式来创建工程;工程建立完成后,我们需要新建一个erlg顶层文件,然后设计的代码输入到新建的Vriog顶层文件中,并对工程进行配置;接下来我们就可以对设计文件进行分析与综合了,此时uats软件会检查代码,如果代码出现语法错误,那么Quartus软件将会给出相关错误提示,如果代码语法正确,Quartus软件将会显示Qurusrus软件会生成一个用于至PA的.f文件。最后,我们通过工具将编译生成的sf文至发板完整个发程。使用QuartusII软件。在创建工程之前,我们建议大家在硬盘中新建一个文件夹用于存放自己的Quartus工程,这个工程的路径名应该只有字母、数字和下划线,以字母为首字符,且不要包含中文和其将文件夹命名为flow_led。然后在flow_led文件夹下创建4个子文件夹,分别命名为:docpar、rtl和simdoc文件夹用于存放项目相关的文档,par文件夹用于存放Quartus软件的工程文件,rtl文件夹用于存放源代码,sim文件夹用于存放项目的仿真文件。创建的文件夹如图接下来启动QuartusII软件,我们直接双击桌面上的QuartusII13.1(64-bit)(如果是32位系统为QuartusII13.1(32-bit)),打开QuarutsII软件,QuartusII软件主界面如图所示。QuartusIIQuartus软件默认由菜单栏、、工程文件导航窗口、编译流程窗口、主编辑窗口以如图所示。创建工程向导-1、工程名以及指定工程的路径2、指定工程的顶层文件名34、指定器件型号5、EDA接下来我们可以单击上图页面下面的【Next>创建工程向导-文件名和路径设置完毕后,我们单击【Next】按钮,进入下一个页面,如图所示。创建工程向导-加,直接单击【Next】按钮,进入如图所示页面。创建工程向导-CycloneIVE系列的产品型号较多,为了方便我们在Availabledevice一栏中快速找到我们开发板的型号,我们在Package一栏中选择FBGA封装,PinCount选择256引脚,Speedgrade速度等级一栏中选择8,之后在可选择的器件中只能看见四个符合要求的型号了,选中“EP4CE10F17C8”,接着我们再单击【Next】按钮进入如图所示页面。创建工程向导-EDA如图所示,在“EDAToolSettings”页面中,我们可以设置工程各个开发环节中需要用到的第EDA工具,比如:仿真工具、综合工具Synplify。由于本实例着具,直接单击【Next>】进入图所示页面。创建工程向导-工程,如果大家需要修改器件的话,直接双击工程文件导航窗口中的“CycloneIVE:EP4CE10F17C8”即可,Quartus显示界面如图0所示。0所以在DesignFiles一栏中选择VerilogHDLFile,然后点击【OK】按钮。创建Verilog代码,如图创建Verilogmodulesys_clk45 67//regreg[23:0]11 mainalways@(posedgesys_clkornegedgesys_rst_n)ifcounter<= elseif(counter<counter<=counter+counter<=always@(posedgesys_clkornegedgesys_rst_n)if led<= elseif(counter== led[3:0]<=led<=33333默认路径也会是当前的工程文件夹,存放的路径修改为rtl文件夹下,如图所口File一栏中找到新建的flow_led.v文件,如图所示。在我们的工程中,需要配置双用的管脚。首先我们在Quartus【Assignments】→【Device...该页面就是可以重新选择器件页面,然后点击【DeviceandPinOptions】按钮,会弹出时,需要将下图页面中所有的引脚都改成UseasregularIO,如果大家不确定工程中是否用到EPCS器件时,可以全部修改。本次实验只修改了nCEO一栏中,将Useasprogrammingpin修改为UseasregularI/0,设置界面如图所示。双用的管脚设置成普通分析与综合(编译标,不过全编译的时间耗时会比较长。接下来我们对工程进行语法检查,点击中的【ysis&Synthesis】图标,图标的位置如图所示在编译过程中如果没有出现语法错误,编译流程窗口【ysis&Synthesis】前面的问号会变成对勾,表示编译通过,如图所示。中点击【Assignments】→【PinPlanner】或者在中点击【PinPlanner】的图标,操作界面如图所示。配完成后如图所示。比如分配sys_clk引脚为PIN_E1,先用鼠标点击sys_clk信号名我们分配完引脚之后,需要对整个工程进行一次全编译,我们在中选择【StartCompilation】图标,操作界面如图所示。在图界面中,左侧编译流程窗口全部显示打钩,说明工程编译通过,右侧Flow开拓者开发板的实物图。首先USBBlaster器一端连接电脑,另一端与开发板上的操作界面如图所示。图打开程序操程序界面如图所示图程序界选中USB-在图的界面中,如果大家的软件中没有出现USB-Blaster,请检查下是不是于程序的sof文件,如图和图所示。图程序界选择sof接下来我们就可以程序了,点击【Start】按钮程序,操作界面如图图程序界进度为100%,如图所示。图程序完成界图所示。里的序of件式,发断电程将会失如果们要程断不lahFasFPA接,FGA会在上电后自动lsh中的程序,这个过程不需要我们编写驱动代码和人为干预,只要通过Gc文即可需注意的是,文件是软自动生的,而是soicQatsFleovetProgrammingFiles…】,操作界面如图0和图1所示。1sof文件转换jic容EPCS16);然后选中窗口中的“FlashLoader”点击右边的【AddDevice..】按钮出现如图2选择开发板器件(这里我们开拓者开发板为CycloneIVEEP4CE10)点击【OK】按钮。然后选中“SOFData”,点击右边的按钮【Addfile….】如图3和图4所示界3添加sof4添加Sof置界面如图4所示。4点击【Generate5击菜单栏【Tools】下的【Programmer】(如果界面关闭了的话),选中.sof文件,点击左侧按钮【Delete】删去之前添加的sof文件,如图6所示。图 点击左边的【AddFile..】找到“output_files”文件下的“output_file.jic7添加jic8JIC如图9所示。图9程序界】,如图和图0取消勾选【Program/Configure1勾选【EraseSignalTapII软件的使SignalTapII全称SignalTapIILogicyzer,是第二代系统级调试工具,可以捕获琐了。SignalTapII逻辑分析仪克服了以上所有的缺点,其借用了传统逻辑分析仪的理念FPGA资源来构成嵌入式逻辑分析仪。SignalTapII不需要将待测信号引出至I/O上,也不需要FPGA开发工具QuartusII软件中。接下来我们使用SignalTapII(以下简称SignalTap)软件来分析工程。我们就以之前的Quartus工程为例进行调试和分析,如果工程关闭了的话,可以通过双击“flow_led.qpf”来4.4.14.4.2作界面如图4.4.3所示。4.4.3打开SignalTap4.4.4列表和触发条件的空白区域,得到如图4.4.5所示页面。4.4.5我们在节点发现器中首先将Filer设置为SignalTapII:pre-synthesis,再点击【List】和led添加至右侧SelectedNodes一栏中,添加方法是直接双击NodeFound一栏的信号名,如果需要删除的话,可以直接双击SelectedNodes一栏的信号名,接下来我们点击【OK】按钮,完成信号的添加,如图4.4.6所示。4.4.6号可以观察,有些不可以,这是因为reg与wire被Quartus软件优化掉了,导致无法使用对于reg信号则加/*synthesisnoprune*/,如下所示:wirewire[23:0]counter/*synthesisreg[23:0]counter/*synthesis法如图4.4.7所示。4.4.74.4.8这个页面和添加待观察信号的页面一样,系统时钟(sys_clk)作为采样数据的时4.4.9和图.104.4.11出是否将分析文件添加至工程的页面,我们直接点击【YES】,如图4.4.12所示。4.4.12文件,这个文件就是我们刚才添加至工程中的分析文件,如图4.4.13所示。接下来我们需要对工程进行全编译,点击图4.4.13所示的全编译的图标,开始编译工程。4.4.13Quartsu工程编译完成后,首先将USBBlaster器一端连接电脑,另一端连接开发板的JTAG接则会出现如图4.4.14所示页面。从该图中我们可以看出,SignalTap软件已经成功识别到我们的器和开发板(如果没有识别到,请检查电脑和开发板是否通过USBBlaster连接完成,并且开发板电源已经打开)。接下来我们给开发板程序,这里需要注意的是,SignalTap软件也是可以给开发板所在路径output_files文件夹下的flow_led.sof,选中后点击Open按钮,如图4.4.15所说页中的开始分析图标,操作界面如图4.4.16所示。图4.4.16SignalTap图图4.4.17是到的波形图,可以通过点击和右击波形图的方式进行放大和缩小,数据中counter信号名,右击选择【BusDisplayFormat】→【UnsignedDecimal4.4.18和图4.4.19所示。4.4.18右击sys_rst_n信号的TriggerConditions方框内的图标,如图4.4.20所示。再次点击中的运行一次的工具按钮,SignalTap软件界面如图4.4.21所示.22SignalTapII第五 软件的安装和使的调试环境,具有个性化的图形界面和用户接口,为用户加快调试提供强有力的,它是的安有几种常见的版本:SE(SystemEditionP(alEdition和OE(OrignalEquipmentManufactuce,即原始设备制造商),其中SE是的版本,而集成在Altera、首先在开拓者FPGA开发板资料盘(B盘)→文件夹下找到的安装包文图 双击运行“-win64-10.4-se.exe”文件,进入如图5.1.2所示的 5.1.2我们直接点击【Next>.35.1.4 5.1.55.1.65.1.7图5.1.8添加到Path变然了如果经过整个的指导操作还是使用不了,不妨卸载了选择“Yes“试试,一般选择5.1.9安装硬件安全Key5.1.105.1.11未安装License使用软件需要添加License,请多多支持正版。至此,安装完成的使安装完软件之后,接下来我们再来介绍一下的使用流程。在介绍5.2.1FPGA QuartusII调用进行仿真,这种情况也就是我们通常所说的自动仿真或者联合仿真。 接双击桌面上的软件图标,打开软件,在中选择File->Change在弹出的框中选 工程名,就能够知道它是用来做什么的了。这里我们把工程命名为“flow_led_tb”,也就是在流水灯模块名“flow_led”后面添加“_tb”。“ProjectLocation”是工程路径,可以根据需要把工程保存到不同的位置。因为前一步骤更改的时候已经做了选择,所以这里保持和我们选择“CreateNewFile”(创建新文件),`timescale1ns/1ns 3module 4//parameterparameterT=20; //regreg reg //wirewire 15 maininitial = #(T+1) always#(T/2)sys_clk=sy_clflow_ledu0_flow_led (sys_clk )3436定义,因为不同的模块如果时间单位不同可能会为仿真带来一些问题。代码的第1行的在开始编译之前,有一点需要注意,我们在QuartusII软件中实现的功能是LED流水灯效0编译的方式有两种:CompileSelected(编译所选)和CompileAll(编译全部)。编译【Compile】中找到这两个命令,也可以在快捷或者在工作区中的右键弹出的菜单中找到这两个命令。下面我们单击CompileAll(编译全部),如下图所示。12→【StartSimulation...3从配置仿真功能页面中我们可以看出,该页面中包含6个,分别是:Design、VHDL、Verilog、Libraries、SDF和Others。对于这6个,我们用的最多的是Design、Libraries和SDF这三个了,下面我们就来简单的介绍一下这3个,其余的我们一般用不到,首先看一下Design是 单元开始仿真,此时被选中的仿真单元的名字就会出现在下方的DesignUnit(s)位置。支持同时对多个文件进行仿真,可以使用Ctrl和Shift键来选择多个文件,被选中的全部文件名都会出现在DesignUni(s区。在DesignUni(s区域的右侧是Resolutin选项,这里可以选择仿真的时间精度。在进行仿真的候,有一最小的时单,1ns1ns为单位进行真,对小于1ns发生的信号变化不予考虑或不予显示。因而这个最小时间单位也就是仿真的时间精依照仿真设计文件中指定的最小时间刻度4在该中,我们可以设置搜索库。SearchLibraries和SearchLibrariesFirst的功能基本一致,唯一不同的是SearchLibrariesFirst中指定的库会在指定的用户库之前被搜索。现在我们来看一下SDF,如图5所示。用于时序仿真的重要文件。SDFFiles区域用来添加SDF文件,可以选择Add按钮进行添加,选5SDFOptions区域设置SDF文件的warning和error信息。第一个“DisableSDFwarning”是禁用SDF警告,第二个“ReduceSDFerrorstowarnings”是把所有的SDF错误信息变成警至此,这三个我们就介绍完了,接下来我们在Design页面中选择work库中的鼠标右键单击“u0_flow_led”,选择“AddWave”89012自动仿真(联合仿真
3在调用过程中,QuartusII会帮我们完成中的所有操作,我们只需要分析最后的仿真结果。下面我们就以“QuartusII安装和使用”章节中我们创建的QuartusII软件工程为例,首先我们打开之前的QuartusII工程,在菜单栏中找到【Tool】→【Options】按钮,如选择Options图添 路径设置完成以后,我们点击【OK】返回我们的QuartusII软件界面。选择Settings图选 我们之前创建工程的时候,由于在QuartusII软件中没有用到仿真,所以这里设置VerilogHDL”。设置完成之后,我们点击【OK】返回QuartusII软件页面中。编写过我们还是介绍一下如何使用QuartusII软件生成TestBench模板,方便编写仿真文件。在QuartusII软件页面的菜单栏中,我们找到【Processing】→【Start】→【StartTestBenchTemplateWriter】按钮,如下图所示:生成TestBench生成TestBench从画横线处我们可以看到QuartusII软件已自动给我们生成了一个TestBench模板并显示该模块的存放路径,我们只需要找到这个模板并稍作修改就能直接使用了。我们在工程下`timescale`timescale1ns/1module////generalpurpose//testvectorinputregreg//9wire//assignstatements(ifflow_ledi1////portmap-connectionbetweenmasterportsand171819#100#1000===2426always#10sys_clk=~_l2我们选中“CompileTestbench”,然后单击后面的【TestBenches】按钮,则出现如下图所示的“TestBenches”窗口:添加Test接着我们单击【New】按钮,则会出现如下图所示的“NewTestBenchSettings”0设置TestBenche在该页面,TestBench文件名输入到“Testbenchname”,将TestBench顶层模块名输入到“Toplevelmoduleintestbench”的编辑栏中,因为一般而言TestBench文件名和顶层模块名相同,所以这里只用在“Testbenchname”这一栏输入即可,软件自动同步添加“Toplevelmoduleintestbench”。接着我们在“Testbenchandsimulationfiles”列表框中添加TestBench仿真文件,这里我们选择QuartusII生成的TestBench模板文件“flow_led_tb.vt”。当然了,也可以选择在手动仿真节里编写的“flow_led_tb.v”文件。1添加TestBench图所示的“Testbenches”窗口的列表中出现了刚才添加的仿真文件相关信息。2成功添加Test到QuartusII软件界面。我们在QuartusII软件界面中的菜单栏中找到【Tools】→【RunSimulationTool【RTLSimulation3开始RTL5至此 第三 语法上一篇,我们介绍了软件篇,本篇详细介绍FPGA的开发语言:VerilogHDL。通过3、Verilog编程规范。通过本篇的学习,希望大家能掌握VerilogHDL语言,并能使用Verilog第六章eilHDLVerilogHDL(HardwareDescriptionLanguage)是在用途最广泛的C语言的基础上发展起来的一种硬件描述语言,具有灵活性高、易学易用等特点。VerilogHDL可以在较短的时间Verilog概层次的模块来表示极其复杂的数字系统。然后利用电子设计自动化(DA)工具,逐层进行仿真验证,再把其中需要变为实际电路的模块组合,经过自动综合工具转换到门级电路网表。接ASIC或FPGA。Verilog语言最初是于1983年由GatewayDesignAutomation公司为其模拟器产品开发的硬件建模语言。由于他们的模拟、仿真器产品的广泛使用,VerilogHDL作为一种便于使用且实用的语言逐渐为众多设计者所接受。在一次努力增加语言普及性的活动中,VerilogHDL语为什么需要1987年成为标准,而Verilog是1995
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 密纹唱片产业链招商引资的调研报告
- 螺旋伞齿轮研磨机项目营销计划书
- 图书架产品供应链分析
- 穿眉孔器械项目运营指导方案
- 员工迁移的商业管理服务行业经营分析报告
- 药品信息页印刷品项目运营指导方案
- 建筑物熏蒸杀虫处理行业营销策略方案
- 家用视频游戏机用电池充电器产业链招商引资的调研报告
- 礼品包装用纸制蝴蝶结项目营销计划书
- 磨床金属加工市场分析及投资价值研究报告
- 电动汽车结构与原理课件:电动汽车的结构组成
- 认知行为疗法(CBT)实操讲座
- 《文化发展的基本路径》(教学设计)- 高中思想政治统编版必修4 哲学与文化
- 领导讲话稿之德育工作会议讲话稿
- 第九套广播体操比赛评分表
- 融资融券知识测评题目+答案
- 企业宣传视频制作方案(技术方案)
- GB/T 3683-2023橡胶软管及软管组合件油基或水基流体适用的钢丝编织增强液压型规范
- 国家开放大学理工英语1边学边练
- 抖音直播商业模式研究5000字【(论文)】
- 承钢800mw热轧卷板翘皮缺陷原因分析
评论
0/150
提交评论