ep4ce30ve20实验指导和使用说明_第1页
ep4ce30ve20实验指导和使用说明_第2页
ep4ce30ve20实验指导和使用说明_第3页
ep4ce30ve20实验指导和使用说明_第4页
ep4ce30ve20实验指导和使用说明_第5页
已阅读5页,还剩98页未读 继续免费阅读

下载本文档

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

文档简介

目 第一章硬件说 FPGA板资 第二章电路分析说 一.简 二.支持功能扩展 三.电路分析和说 第二章扩展I/O端口说明及其引脚隐 第三章QUARTUS11.0SP1安装指 一、软件安 二、安装 三、Verilog程 测 四、NIOS程 五、配 简 3、 文 第四章、创建一个完整系统工 2 建立QUARTUS工 4 构建NIOSII 构建 构建 10、建立锁相环 11、引脚分 12、工程设 1、构建NIOSIIIDE软件工 三.调试与软件逻辑分析仪的使 第五章SOPC开发工具说 NIOSIIIDE详 第六章附录:NIOS开发中的常见问 EP4CE30CYCLONEIVVER2.0NIOSII NIOSIINIOSIIIDE(HAL)提供完整的Al 发。套件中相关软件包括:QuartusII11.0(SOPCBuild,SignalTapII),NIOSII11.0提供基于NIOSIIIDEHAL的UCOSII(LWIP)应用开发实现平台。16256MBSDRAM,16128MBFLASH,1UART4LED接口,可以驳接音频输入输出卡,输入输出卡,AD,DA卡。封装,Spee8,LogicElements28848,MemoryBits608256,EmbeddedMultipliers132,GlobalClocks20,I/O533,PLLs4。EP4CE30CYCLONEIVV2.0NIOSIIFPGA1Bits608256,EmbeddedMultipliers132,GlobalClocks20,I/O533,PLLs4系统高速运行在100M频率以上。11512Kx16bit(8Mbit),高速静态SRAM10ns读写。11214131AS127LED数码显示(416LCD接口JTAG端口是用来配置FPGA,并对FLASH配置,一般调试的时候使用这个端口.您不用的外设请将其.用户应该仔细阅读使用说明书EDA底板的原理图.一.同时,这套开发板也提供了一个SOPC(SystemOnProgrammingChip)平台,可以实现嵌入式的软CPU,如NIOSII,OpenRISC等,为嵌入式电子产品设计提供了又一种选择。 配置采用标准EPCS64(64MB)配置进行配置,可以烧写多配置文件。避免单独使用CPLD+FLASH进行配置不能256MB高速SDRAM,一片16M×16BitSDRAM,最高133MHz128MB快速FLASH,一片16M×8BitFlash读写速度为灵活的页面方式,可以用来FPGA配置文件或者操作系统镜像文件普及配置采用512KByte高速,异步SRAM一片256K×16BitSRAM,10ns16Bit位宽,独立的字节使能信号IS61LV256161MByte高速,异步SRAM一片512K×16BitSRAM,10ns16Bit位宽,独立的字节使能信号IS61LV51216GCLK二.可选配件以及扩展板(扩展板将陆续推出,轻松应对各种应用和设计要求30W像素头模USB2.0VGASD音频回放SDCF扩展板视频音频采集高速AD/DA模块24VGA三.发光二极管E果采用这种方式,必须采用ByteBlasterII或USBBLASTER电缆才行。调试阶段采用JTAG模式。电缆可以采用ByteBlasterII。推荐使用USBBLASTER线.因为速度比较快I/OQuartus11.0SP1一、接下来的工作就是要开始安装软件了。AL公司的FPGA开发环境是QuartusII,我们所使用的版本11.0sp1NIOSII,NIOSIIIDEQuartusII必须的,不然在编译过程中,NIOSIIIDE会产生错误。FPGA(2,3:安装安装文件夹下11.0_devices_windows安装通过Crack_QII_11.0_SP1_Windows.rar进行安装安装安装-win32-10.0c-se.exe或-win64-10.0c-se.exe(根据系统决定,32位系;根据_se_10.0c.rar进行二、安装USB线驱安装软件以后,我们还需要安装USBBLASTER(线)的驱动。USBBLASTER的驱动是QuartusII\规频\NIOSII规频11.0(05)--usbblaster驱动安装.wmv 如果您是WIN7系统用户,如果出现不能安装的情况,请将,杀毒软件都关掉,然后式,一种是AS方式。对应的在华升开发板的板上有两个10针的接口,上面有标识AS口和JTAG口。USB线一端不电脑的USB口相连接,另一端不华升开发板的JTAG口或者AS口相连。在同一时刻,我们叧能使用其中一个接口。其中JTAG方式负责FPGA仿真,程序通过USB线到FPGA内部SRAM中。由于FPGA是基于SRAM技术的,所以掉电以后,程序会丢失;AS方式是将程序到FPGA外部的配置EPCSX中的,EPCSX实质是一种串行FLASH,因此,掉线以后,程序不会丢失。每次上电,EPCSX中的程序都会自动加载到FPGA中,然后再开USBBLASTER本身就有仿真和两种功能,因此,FPGA开发过程中叧需USBBLASTER既可以实现仿真和程序两个功能。其中JTAG方式主要用于仿真,而AS方式用于最终的程序到外部的配置EPCSX中。三、Verilog程序测上述过程都完成以后,接下来,我们就要试试华升开发板是否可以进行程序了,您也一VerilogDEMO_V下面我将为大家演示如何进行测试。测试程序是流水灯实验。在这里要首先要说一下,拿到光盘以后,建议大家先将光盘内容拷贝到硬盘中,还有一点要开Quartus工程文件。QuartusII在之前,我们需要将USB线插到华升开发板的JTAG口相连接,这次我们要做的是仿真。插好USB线以后,我们插上电源,按下开关。在这里,我要特别提醒大家,USB线一定不要带电的情况下插拔,一定要先关掉电源,然后再插拔。如果带电插拔USB线,很有可能会烧损USB-Blaster[USB-0RemoveHardware,将其他选项都移除。最后点击Close关掉此窗口,回到窗口。片支持其中的JTAGActiveSerialProgrammingAS)。这个也就是我上面所说的JTAG和AS两种方式。在这里,我们选择JTAG,进行JTAG仿真功能。如果我们要将最终程序到外部的EPCSX中,那举我们在此选择ActiveSerialProgramming,同时我们也要将USB线跟华升开发板的AS接口相连。其中,后缀为.sof的文件供JTAG模式使用,而后缀为.pof的文件供AS模式使用。进入界面以后,默认的.sof文件已经加载了,如下图的top_module.sof文件。接下来我们开始,点击下图的start,程序即开始了在此需要说明一下,由于在我们出厂的时候,已经有程序到EPCSX里面了。我们进行上一点初学者可能会有疑惑。问题就在FPGA是基于SRAM技术的,通过JTAG模式,叧是将程序到FPGA内部的SRAM中,因此掉电以后,我们通过JTAG模式的程序会丢失的。而重新上电以后,EPCSX会自动加载程序到FPGA里。四、NIOS程序NIOSDEMO中测试程序。NIOSDEMO_N\DEMOmain、driver、inc由于NIOS工程跟工程路很有绝对关系,因此,如果要是测试NIOS程序,需要大家重新建立NIOS软件工程,然后将上述三个文件夹添加到NIOS工程中。具体相关操作,请大家参看配套光盘中相关的NIOSII规频及配套光盘中NIOS下的相应。五、配套简随华升开发板的配套分成NIOS和Verilog两部分NIOSNIOS技术有一部,在配套光盘下的\NIOS\下,在这个文件夹\NIOS\下,还有配套的源代码。同时配套的规频在配套光盘下的\NIOSII\规频\,里面包含规频,同时还包括了规频中对应的源代码和详细讲述了NIOSII的相关技术。C51,ARMDSPC那种开发环境,KEIL、GCC、CCS,以至于要学习的NIOSIIIDE,都是使用C语言来操作的。由此可见,C语言的重要性可以说不言而喻的。《C(2·新版CBrianW.KernighanR,此收录在配套光盘的\NIOS\下。正版地址: VerilogVerilog技术有四部,在配套光盘下的\VERILOG\下,进入以后,大家可以看到有四个文件夹,也就是对应我们的四部。四个文件夹中分别有对应的,他们分别是《VerilogHDL扫盲文》四部的阅读顺序也很明显,从《VerilogHDL扫盲文》开始,其后分别请注意:源程序和中都是使用20M外部晶振,而HSEP4CE30使用的是50M和40M外部晶振,对于我们的这四部,并不是从零开始讲起的,需要有Verilog的语法基础。在此推荐一本比较经典的Verilog基础,闻老师的《Verilog数字系统设计》(第二版,正版图/product.aspx?product_id=如果有些朋友想看的,我特意在配套光盘下的VERILOG下的推荐基础文件夹内3、TCL文TCL文件是用于分配引脚使用,我们可以通过此文件来查看外设的引脚,免于通过原理图来求进行修改和更新。TCL文件在配套光盘中TCL文件夹下。对下面的文件简单解释一下,我们以第一条举例,PIN_E4就是FPGA的第E4引脚,RESET就是对应的复位引脚,RESET这个名字是我们自己起的,没有特别的觃定,叧要文件的名字跟要分配的引脚名字一直即可,其他引脚下面引脚中有一点需要注意,液晶屏对应的引脚(eda主板12864OTC)和液晶屏对应的引脚(eda1602/1286扩展口)12864OTC符号注释掉;同理,使用(eda1602/1286扩展口)的时候,请将(eda12864OTC)的引脚 set_global_assignment-nameENABLE_INIT_DONE_OUTPUTOFFset_location_assignmentPIN_K2-toDCLKset_location_assignmentPIN_E2-toSCEset_location_assignmentPIN_D1-toSDOset_location_assignmentPIN_L7-tosdram_data[0]set_location_assignmentPIN_L6-tosdram_data[1]set_location_assignmentPIN_M7-tosdram_data[2]set_location_assignmentPIN_M6-tosdram_data[3]set_location_assignmentPIN_M5-tosdram_data[4]set_location_assignmentPIN_M4-tosdram_data[5]set_location_assignmentPIN_M3-tosdram_data[6]set_location_assignmentPIN_N7-tosdram_data[7]set_location_assignmentPIN_R1-tosdram_data[8]set_location_assignmentPIN_R2-tosdram_data[9]set_location_assignmentPIN_P1-tosdram_data[10]set_location_assignmentPIN_P2-tosdram_data[11]set_location_assignmentPIN_N1-tosdram_data[12]set_location_assignmentPIN_N2-tosdram_data[13]set_location_assignmentPIN_M1-tosdram_data[14]set_location_assignmentPIN_M2-tosdram_data[15]set_location_assignmentPIN_R5-tosdram_addr[0]set_location_assignmentPIN_T5-tosdram_addr[1]set_location_assignmentPIN_T4-tosdram_addr[2]set_location_assignmentPIN_T3-tosdram_addr[3]set_location_assignmentPIN_V3-tosdram_addr[4]set_location_assignmentPIN_V4-tosdram_addr[5]set_location_assignmentPIN_AA1-tosdram_addr[6]set_location_assignmentPIN_Y1-tosdram_addr[7]set_location_assignmentPIN_Y2-tosdram_addr[8]set_location_assignmentPIN_W1-tosdram_addr[9]set_location_assignmentPIN_R7-tosdram_addr[10]set_location_assignmentPIN_W2-tosdram_addr[11]set_location_assignmentPIN_V1-toset_location_assignmentPIN_P4-tosdram_ba[0]set_location_assignmentPIN_P3-tosdram_ba[1]set_location_assignmentPIN_P7-tosdram_casset_location_assignmentPIN_V2-tosdram_ckeset_location_assignmentPIN_U1-toSDRAM_CLKset_location_assignmentPIN_P5-tosdram_csset_location_assignmentPIN_N6-tosdram_dqm[0]set_location_assignmentPIN_U2-tosdram_dqm[1]set_location_assignmentPIN_P6-tosdram_rasset_location_assignmentPIN_N5-tosdram_weset_location_assignmentPIN_A10-toflash_data[0]set_location_assignmentPIN_B10-toflash_data[1]set_location_assignmentPIN_H10-toflash_data[2]set_location_assignmentPIN_C10-toflash_data[3]set_location_assignmentPIN_G10-toflash_data[4]set_location_assignmentPIN_F10-toflash_data[5]set_location_assignmentPIN_E10-toflash_data[6]set_location_assignmentPIN_D10-toflash_data[7]set_location_assignmentPIN_A9-toflash_addr[0]set_location_assignmentPIN_G9-toflash_addr[1]set_location_assignmentPIN_C3-toflash_addr[2]set_location_assignmentPIN_B3-toflash_addr[3]set_location_assignmentPIN_A3-toflash_addr[4]set_location_assignmentPIN_C4-toflash_addr[5]set_location_assignmentPIN_B4-toflash_addr[6]set_location_assignmentPIN_A4-toflash_addr[7]set_location_assignmentPIN_E5-toflash_addr[8]set_location_assignmentPIN_E7-toflash_addr[9]set_location_assignmentPIN_D7-toflash_addr[10]set_location_assignmentPIN_C7-toflash_addr[11]set_location_assignmentPIN_B7-toflash_addr[12]set_location_assignmentPIN_A7-toflash_addr[13]set_location_assignmentPIN_G8-toflash_addr[14]set_location_assignmentPIN_F8-toflash_addr[15]set_location_assignmentPIN_C8-toflash_addr[16]set_location_assignmentPIN_B9-toflash_addr[17]set_location_assignmentPIN_B5-toflash_addr[18]set_location_assignmentPIN_A5-toflash_addr[19]set_location_assignmentPIN_A6-toflash_addr[20]set_location_assignmentPIN_B6-toset_location_assignmentPIN_E6-toflash_addr[22]set_location_assignmentPIN_F9-toflash_ceset_location_assignmentPIN_E9-toflash_oeset_location_assignmentPIN_D6-toflash_weset_location_assignmentPIN_U22-toSRAM_A[0]set_location_assignmentPIN_V21-toSRAM_A[1]set_location_assignmentPIN_V22-toSRAM_A[2]set_location_assignmentPIN_W21-toSRAM_A[3]set_location_assignmentPIN_W22-toSRAM_A[4]set_location_assignmentPIN_AB17-toSRAM_A[5]set_location_assignmentPIN_AA16-toSRAM_A[6]set_location_assignmentPIN_AB16-toSRAM_A[7]set_location_assignmentPIN_AA15-toSRAM_A[8]set_location_assignmentPIN_AB15-toSRAM_A[9]set_location_assignmentPIN_W15-toSRAM_A[10]set_location_assignmentPIN_U15-toSRAM_A[11]set_location_assignmentPIN_Y17-toSRAM_A[12]set_location_assignmentPIN_W17-toSRAM_A[13]set_location_assignmentPIN_W20-toSRAM_A[14]set_location_assignmentPIN_R21-toSRAM_A[15]set_location_assignmentPIN_P22-toSRAM_A[16]set_location_assignmentPIN_P21-toSRAM_A[17]set_location_assignmentPIN_W19-toSRAM_A[18]set_location_assignmentPIN_Y22-toSRAM_DB[0]set_location_assignmentPIN_AA21-toSRAM_DB[1]set_location_assignmentPIN_AA20-toSRAM_DB[2]set_location_assignmentPIN_AB20-toSRAM_DB[3]set_location_assignmentPIN_AA19-toSRAM_DB[4]set_location_assignmentPIN_AB19-toSRAM_DB[5]set_location_assignmentPIN_AA18-toSRAM_DB[6]set_location_assignmentPIN_AB18-toSRAM_DB[7]set_location_assignmentPIN_U20-toSRAM_DB[8]set_location_assignmentPIN_U19-toSRAM_DB[9]set_location_assignmentPIN_T18-toSRAM_DB[10]set_location_assignmentPIN_T17-toSRAM_DB[11]set_location_assignmentPIN_R20-toSRAM_DB[12]set_location_assignmentPIN_R19-toSRAM_DB[13]set_location_assignmentPIN_R18-toSRAM_DB[14]set_location_assignmentPIN_R17-toSRAM_DB[15]set_location_assignmentPIN_P17-toSRAM_BYTE[0]set_location_assignmentPIN_U21-toSRAM_BYTE[1]set_location_assignmentPIN_R22-toSRAM_OEset_location_assignmentPIN_AA17-toSRAM_WEset_location_assignmentPIN_Y21-toSRAM_CSset_location_assignmentPIN_AB7-toUSB_DB[0]set_location_assignmentPIN_AA7-toUSB_DB[1]set_location_assignmentPIN_Y7-toUSB_DB[2]set_location_assignmentPIN_W7-toUSB_DB[3]set_location_assignmentPIN_V7-toUSB_DB[4]set_location_assignmentPIN_U7-toUSB_DB[5]set_location_assignmentPIN_AB8-toUSB_DB[6]set_location_assignmentPIN_U8-toUSB_DB[7]set_location_assignmentPIN_V5-toUSB_A0set_location_assignmentPIN_W6-toUSB_WRset_location_assignmentPIN_V6-toUSB_NINTset_location_assignmentPIN_T8-toLAN_NINTset_location_assignmentPIN_AB9-toLAN_NWOLset_location_assignmentPIN_V9-toLAN_MOSIset_location_assignmentPIN_AA9-toLAN_MISOset_location_assignmentPIN_U9-toLAN_SCKset_location_assignmentPIN_T9-toLAN_CSset_location_assignmentPIN_C15-toVGA_Gset_location_assignmentPIN_D15-toVGA_Bset_location_assignmentPIN_B15-toVGA_Rset_location_assignmentPIN_E15-toVGA_HSset_location_assignmentPIN_E15toMT[3]set_location_assignmentPIN_D15toMT[2]set_location_assignmentPIN_C15toMT[1]-set_location_assignmentPIN_E14toRELA1#液晶屏对应的引脚(eda主板12864OTC)set_location_assignmentPIN_AA5toLCD_CSset_location_assignmentPIN_AB5toLCD_A0set_location_assignmentPIN_Y4toLCD_SCLset_location_assignmentPIN_AB3-toLCD_SIset_location_assignmentPIN_AB5-toLCD_RWset_location_assignmentPIN_Y4-toLCD_RSset_location_assignmentPIN_AA5-toLCD_Eset_location_assignmentPIN_AB7-toLCD_D[0]set_location_assignmentPIN_AA7-toLCD_D[1]set_location_assignmentPIN_Y7-toLCD_D[2]set_location_assignmentPIN_W7-toLCD_D[3]set_location_assignmentPIN_V7-toLCD_D[4]set_location_assignmentPIN_U7-toLCD_D[5]set_location_assignmentPIN_AB8-toLCD_D[6]set_location_assignmentPIN_U8-toLCD_D[7]#LED对应的引脚(板)set_location_assignmentPIN_AB14toLED[0]set_location_assignmentPIN_AA14toLED[1]set_location_assignmentPIN_W14-toLED[2]set_location_assignmentPIN_V14-toLED[3]#LED对应的引脚(EDA6.1主板)set_location_assignmentPIN_AB7toSD[0]set_location_assignmentPIN_AA7toSD[1]set_location_assignmentPIN_Y7-toSD[2]set_location_assignmentPIN_W7-toSD[3]set_location_assignmentPIN_V7-toSD[4]set_location_assignmentPIN_U7-toSD[5]set_location_assignmentPIN_AB8-toSD[6]set_location_assignmentPIN_U8-toSD[7]#板按键对应的引脚set_location_assignmentPIN_T6tos1set_location_assignmentPIN_P5tos2set_location_assignmentPIN_R6tos3set_location_assignmentPIN_p6to#EDA6.1主板按键对应的引脚set_location_assignmentPIN_F11toDKA7set_location_assignmentPIN_E11toDKA6set_location_assignmentPIN_E12toDKA5set_location_assignmentPIN_G13toDKA4set_location_assignmentPIN_F13toDKA3set_location_assignmentPIN_E13toDKA2set_location_assignmentPIN_D13toDKA1-set_location_assignmentPIN_G13-toKEY_DOWNset_location_assignmentPIN_F13-toKEY_LEFTset_location_assignmentPIN_E13-toKEY_OKset_location_assignmentPIN_D13-toKEY_RIGHTset_location_assignmentPIN_C13-toKEY_UP#EDA6.1主板4x4keyboard对应的引脚set_location_assignmentPIN_D19-tokey[0]set_location_assignmentPIN_C19-tokey[1]set_location_assignmentPIN_A19-tokey[2]set_location_assignmentPIN_B20-tokey[3]set_location_assignmentPIN_F14tokeys[0]set_location_assignmentPIN_G14tokeys[1]set_location_assignmentPIN_A13tokeys[2]-#EDA6.1主板SD卡对应的引脚set_location_assignmentPIN_B13-toSD_WPset_location_assignmentPIN_G14toSD_CMDset_location_assignmentPIN_F14toSD_DAT3set_location_assignmentPIN_B19-toSD_CLKset_location_assignmentPIN_AA4toRXD-set_location_assignmentPIN_D17toI2C_SCL-set_location_assignmentPIN_A18-toPS2_DATset_location_assignmentPIN_A17toRTC_SCLKset_location_assignmentPIN_C17toRTC_nRSTset_location_assignmentPIN_F15toIR set_location_assignmentPIN_W10toDIG[0]set_location_assignmentPIN_V10toDIG[1]set_location_assignmentPIN_U10toDIG[2]set_location_assignmentPIN_T10-toDIG[3]set_location_assignmentPIN_V11toDIG[4]set_location_assignmentPIN_U11toDIG[5]set_location_assignmentPIN_T11-toDIG[6]set_location_assignmentPIN_Y8-toDIG[7]set_location_assignmentPIN_AA10-toSGSEL[0]set_location_assignmentPIN_Y10-toSGSEL[1]set_location_assignmentPIN_AA8-toSGSEL[2]对于我们推出CYCLONEIV的FPGA开发板,在NIOS开发过程中,这一节,我们就NIOSCYCLONEIVCYCLONEIIFPGA开发过程的不同之处,以及细节上的改动。XP32bitWIN7开发软件:Quartus11.0sp1,NiosII11.0sp1与门进行了WIN7系统下的测试。总结了一下WIN7下系统兼容问题的解决办法。归根结底,问题的就是WIN7系统的权限,在一般用户下(除了administrator以外我们发布的《NIOSII11.0(01)--进入管理员账户.wmv 11.0SP1 Quartus建立一个工程File->NewProjectWizard,Next其工程在D:\Temp\O下(注意:路很中一定不能有空格和中文,工程命名为O,如下所示NextNextFamilyCYCLONEIVE,芯片选择: 然后点击后双击BlockDiagram/SchematicFile由于AL增加了Qsys的功能,所以将SOPCBuilder放进了Tools下。 SOPCBuilderSystemNameKERNEL,OK然后,我们需要进行构建最基本的软核,NIOSIIProcessor、SYSTEMID、SDRAM、EPCS及JTAGUART.NIOSIINIOSIIProcessor,改为SYSTEMSystemIDsysidFinishSDRAM针对这几个设置,我解释一下。首先选择Custom,是因为自带的里面没有我们所使用们所使用的SDRAM有两种,K4S561632K或者HY57V2562GTR,他们是引脚兼容的两种,个没什么说的数据总线是16bit设置好以上参数,点击FinishSDRAM EPCSEPCSSerialFlashController,EPCS9.JTAG接下来,我们来构建JTAGUART,如下图所示,点击JTAGcpucpuResetVector处选择epcs,ExceptionVector处选择sdram。ResetVector指复位地址,也就是说NIOS软核复位重启后,从此处开始运行。ExceptionVector是现异常,NIOS软核重启的地址。然后点击Finish,完成修改。接下来,我们需要对EPCS地址进行锁定,保证EPCS的起始地址为0xEPCS是NIOS从 完成上述以后,NIOS的时钟改为100M,如下图所工作,点击Generate,出现以下窗口,点击Save出现以下窗口,命名为kernel身体可是的本钱啊,留得青山在不怕没柴烧,哈哈该是软件的一个bug,大家可以无视ExitSopcBuilderQuartus10、PLLSDRAMCYCLONEIV50MSDRAM100MNextI/OALTPLLPLLNext(50M,即基准频率。然后点击Next,如下图所示Enteroutputclockparameters2,这样就进行了二倍的倍频,我们可以看ActualSettings100.000000100MHzSDRAMNext首先,Usethisclock勾选,然后将Enteroutputclockparameters设置为2,ActualSettings100.000000,即实际的频率为钟相移进行调节,以达到SDRAM的时钟不软核之间的协调。Clockphaseshift-73Clockphaseshitf其实是一个范围,你输入-65、-75具体这个范围应该怎样算,大家可以看华升EDA上的一个文档,里面有详细的估算,不过都设置好以后,我们点击Finish,Yes,11、引脚分配动,到了指定位置,松开鼠标即可。接下来,我们进行引脚分配。鼠标锁相环PLL,在下拉菜单里点击GeneratePinforSymbolPorts,如下SDRAMEPCSEPCSEPCSSDRAMSDRAMBANKSDRAMSDRAMSDRAMSDRAMSDRAMSDRAM有的人可能会问,为什么要改成这些名字呢?有什么用途呢?其实,原因就是为了让这些引脚的名字跟我们后面要用到的hseda.tcl里面引脚的名字一致,下面是我截取hseda.tcl文件中的一部分我对这个进行上面的TCL文件稍作解释一下,TCL(最早称为“工具命令语言CommandLanguage",TCL)是一种脚本语言。由JohnOusterhout创建。TCL很好学,功能很强大。TCL经常被用于快速原型开发,编程,GUI和测试等方面(引至百科)。因此这里面的TCL并不是我们耳熟能详的set_location_assignmentPIN_G1-to这句话的意思就是将名为CLOCK的引脚分配到FPGA的引脚G1上,就这么简单。我们之前的将时钟引脚改名字为CLOCK,就是在运行TCL的时候,将其指向G1。将所首先,将配套光盘下的TCL文件夹下的hseda.tcl(A:TCL/hseda.tcl)文件拷贝到你的(TCL不能运行),我的是在选中hseda.tcl,然后点击Run,完成分配。分配完成以后,正常情况,我们会看到每个引脚后面有个小尾巴,如下图所示,不过由于Quartus软件有bug,有的时候分配成功也不显示,所以我们可以通过另一个方法来判断是否分配成功了。点击Assignments->Pinnner,如下图所示,我们可以看到,NodeName所在列为我(修改以后的,LocationFPGA跟hseda.tcl是一模一样的。加入引脚的名称改错了,那么大家就可以发现这个引脚所对应的Location部分是空的,这样就会发现错误所在,然后重新改正,重新分配TCL文件即可。因此,这种方法是最可靠的。12、工程设置DeviceandPinOptions,UseconfigurationdeviceEPCS64UnusedPinsReserveallunusedpinsAsinputtri-stated点击左侧的Dual-PurposePins,如下图所示,将右侧红圈处的Value都设置为Use部分,这个地方跟CYCLONEII系列FPGA不一样,从软核上大家就可以看得出来,多了四个EPCS的引脚,需要我们手动来设置,这个跟本身有关系,CYCLONEIII和CYCLONEIV的FPGA都需要这样来设置。的时间,起来运动一下吧。编译,会出现一个框,如下图所示,大家可以看到successful字样,说明编译成功了。大家还看到有194个警告,大家可以先不用理会,NIOS编译就是这样的,会有OK,我们可以看到一些编译信息,如下图所示,大家可以看到,我们一共用了LE,FPGAQuartusNIOSIDE软件开发。在此,先总结一下,CYCLONEIV(HSEP4CE30)CYCLONEII发板(型号:HSEP2C35)在开发过程中有哪些不同的地方。:EP2C8Q208C8CYCLONEIV50MCYCLONEIVSDRAMCYCLONEIVEPCS引脚,在设置的时候,也需要Dual-PurposePins设置为:UseasregularI/O。CYCLONEIV开发板使用的是EPCS64,CYCLONEII开发板使用的是EPCSX。我们在以上CYCLONEIV最小NIOS软核开发过程中,对比CYCLONEII总结了以上的不同之处,希->所有程序->NIOSIIEDS11.0sp1->LegacyNiosIITools->NiosII11.0sp1Quartus11.0sp1NIOSNIOSIIEDS11.0sp1,EDSIDEBrowse下,我的是在D:\Temp\O,然后点击OK,完成工作空间的转换。空间转化的目的就是为了让NIOS的工作空间跟Quartus的工程在一起。File->New->NiosIIC/C++Application,我们要做的实验就是一个最简单的oworld实验,Name和SelectProjectTemGeneral->WorkspaceSaveautomaticallybeforebuild这样就不用每次都手动保存了。Run/Debug->LaunchingBuild(ifrequired)beforelauching的勾选取消,这样可以提升编译的速度,以免每次都进行重复的编译。译工程。NIOSNIOS们进行的第三次编译了,前两次是在Quartus下进行的,这次是NIOSIDE下进行的。Console56KByte32711KByte,NIOS插拔JTAG口,以免JTAG口烧损。首先,我们需要将.sof文件到FPGA中。有两种方法可以进入界面,第一种,在Quartus中,点击下图按钮NIOSIDETools->QuartusII点击AddFile,将O.sof加入到界面中,如下图所示。然后点击Start,开始(如果USBBlaster没有出现,可以点击HardwareSetup进行添加。100%(Successful完成.sof文件以后,我们进行程序的硬件仿真,如下图所将会出现以下现象,如下图红框出显示ofromNiosII!JTAGUARTUSBBlasterNIOSIDE可以不开发板进行数据通信。如下图示,在工程处点击右键,选择SystemLibraryJTAG_UARTConsole一个NIOS实验就完成了。整个开发流程大家应该有一个大概的了解了。在这里我来QuartusII11.0SOPCBuilder将软核加入到原理图文件中,并构建锁相环NIOSIDE连接USBBlaster,上电,.sof文件以上的步骤,就是NIOS开发的大概步骤了。对于CYCLONEIV后续试验,大家可以参考华升配套的以及对应的就可以了。不同点我在上面都已经说明了,外设对应的引TCLhseda.tclCYCLONEII开发板就没有什么区别了。后续的实验,大家也可以以我们这节制作的Quartus工程为基础进行修改,这样就更简单一些。比如LED实验,大家在OWORLD实验的基础上,在SOPCLEDPIONIOSEDAEDA支持,我们会不断的推出和硬件,满足大家对知识的追求和渴望。.Quartus®IISignalTap®II逻辑分析器和SignalProbe™功能可以分析内部器件节点和I/O引脚,同时在系统内以系统速度在运行。SignalTapII逻辑分析器使用嵌入式逻辑分析器将信号数据通过JTAG端口送往SignalTapII逻辑分析器或者外部逻辑分析器或示波器。SignalProbe功能使用未用器件路由资源上的递增式路由,将选定信号送往外部逻辑分析器或SignalTapIISignalTapIISignalTapII(.stp括所有配置设置并以波形显示捕获到的信号。一旦设置了SignalTapII文件,就可以编译工程,对器件进行编程并使用逻辑分析器和分析数据。以下步骤描述设置SignalTapII文SignalTapIISignalTapIINodeFinder的SignalTapII滤波器查找所有预综合和布局布线后的SignalTapII节点。程序到中在Quartus11.0软件中或使用外部逻辑分析器或示波器和分析信号数据触发器是逻辑级别和/或逻辑边缘方面的逻辑模式。SignalTapII逻辑分析器支持多级触发、多个触发位置、多个段以及外部触发。可以使用SignalTapII逻辑分析器窗口中的SignalConfiguration面板设置触发器选项。可以给逻辑分析器配置最多十个触发器级Nios(SOC, 2000年,AL 最小体积为1000个LEs,和同一时期的其它嵌入式处理器相比,已属于高性能之列。NiosII有着更高的性能,更小的体积。其最大处理力是第一代软核的3倍,而小的体积只有200DMIPs以上;s型又叫,其体积与性能介于e型与f型之间。SOPCBuilder系统开发工具可以自动生成这些组件以及连接它们的总线。NiosCPU。

器器

M

图NiosNiosCPU对SOPC和编译嵌入式应用进行优化。Nios嵌入式处理器采用改进的哈佛器结构,CPU带有分离的数据和程序器总线控制。SOPCBuilderAvalon连接,这些从属设备可以是器或设备。NiosCPU1632位配置。个用于指令前缀的K寄存器。16NiosCPU1632NiosCPU32断。Nios中断处理模式能够准确地处理所有内部中断。s开发者也可以用自定义指令在单周期和多周期操作中执行复杂的处理任务。另外,用户添加的以Nios。(DSP (GUI面可以向Nios5个自定义指令。Al提供单独的预定义指令来提高软件性能。MULMSTEP实现需要80个时钟周期。表硬件加速乘法器的资源使用和时钟周期时钟周期①时钟周期32×无(软件02硬件加速操作对可编程逻辑器件(PLD)中的处理器软核非常有利。Nios度和面积间选择,增加了SOPC设计的灵活性。统开发工具自动地产生Avalon交换结构总线逻辑。AlSOPCBuilder据流。Avalon每次只能有一个控制器可以存取系统总线而形成带宽瓶颈,如图1-2所示。

器器器 图器器控制器)有多达4GB的可寻址器范围。设备)形成片选信号,这可极大地简化基于Nios处理器系统的设计。带Avalon交换矩阵的数据流处理在数据流控制器和数据流从属设备之间建立一个开放的必连续地从属设备中的状态寄存器来决定从属设备是否可以发送或接收数据。数据溢出。这对DMA传输尤其有用。动态的总线大小允许Nios开发者使用低成本的窄的器件,这些器件可以和Nios设备中取出宽的数据值。SOPCBuilderNios嵌入式处理器包括可以在Al可编程逻辑中实现的标准设备库,Al提供给用户这些设备的VerilogHDL或VHDL源代码以及所有系统综合需要的软件程序。设计者能够使用SOPCBuilder系统开发工具配置自己的Nios处理器系统。利用SOPC表Nios设备库外围设备 件用户逻辑接口 Graphics的嵌入式系统)提供给Nios嵌入式处理器系统开发者世界级的调试工具。 Code|lab调试软Windows动态连接库ISAByteBlasterII电缆口 器OCINios图(OCI断点、监视点、片内和片外等内部电路仿真器。用户可以使用Al开发套件中的RedHatInsightOCI。CBiroCSoPCBuilderHDLSCud为每个元件提供了一个向导,利用该向导能很容易地定义元件功能。例如通过向导能够非常容易入Ns它IPCBidr成以前易于出错的工作,CBidr可以节约几周甚至几个月的开发时间。oCBidrSCASoPCuilder系统总线主要解决多个主控制器相互连接、协调工作和资源共享的问题。例如一个系统包有DMA,SoPCBuilder和DMASCir运用了一项被称为从属设备仲裁的技术,该技术允许多个主控制器同时数据。除非多个主控用SoPCBuilderSoPCBuilderebh用A用CPU在SCBir己eigVLoCBirBuilder换或离散余弦变换就是很好的例子。这些变换对数据的处理是基于数据块进行操作的。DMA据到DMA进而DMA继续接收数据。oCBidrSCBlrNsisSoPCBuilderab在a,CrNos来这些特定功能硬件。由于采用硬件实现复杂的算术逻辑运算比用软件更快捷、更高效,因此设计者在设计电子系统时应该着重考虑系统内部重要的循环运算,让这一部分尽量用硬件来实现,把原先需要几个指令周期才能实现的循环运算减少到只需一个指令周期就能实现。例如在循环冗余校验计算中,设计者可以用非常简单的硬件逻辑来代替需要多sHDLSCBidrCPU力。因此在某些应用领域中,软件开发者会利用硬件协处理器来减少各种复杂的数算,包由Al 用控制接口来设置协处理器并且监视它的工作情况,用数据接口与器、设备或其它协FPGASoPCBuilder开发环境中,使之能够非常方便地集成到整个设计系统中。在整个开发过程中,SoPCBuilderFPGANiosIIIDE 就会拥有非常成功的产品。基于PLD的处理器恰恰具有应用所需的特性。一旦定义了处理器之后,设计者就“具备”了体系结构,可放心使用。因为PLD和嵌入处理器随即就生效了,可以马上开始设计软件原型。CPU周边的硬件逻辑可以慢慢地集成进去,在每个阶段软件都能够进试,解决遇到的问题。另外,软件组可以对结构方面提出一些建议,改善代码效率和/AlNios逐渐成熟,Al必须让嵌入设计者信服地接受新的处理器和新的设计流程。我们最无法确定的Al和Cygnus(RedHat)Cygnus入和优化他们的GNUProToolkit,这是绝大部分设计者非常熟悉的标准GNU环境。器和外设。可配置处理器让设计者自行创建总线体系,定义器映射和分配中断优先级,非常自由地完成的工作。Al相信SOPC的优势会吸引嵌入设计者,但是条件是其它的需NiosIIIDEC/C++软件开发套件,包括编辑器、项目管理器和构建工具、CFl(CommonFlashInterfaceFlash括FPGA硬件(通过JTAG电缆)、NioslI指令集仿真器和-Al软件,因而能够提l28帧带源码级重建的片内。因为是基于Eclipse框架,可以方便地增加软件“插件”以提供的附加功能。NiosIIIDE含有支持Micrium的MicroC/OS—II实时操IDE◆NiosIIIDENiosIIIDEEclipseJTAGNiosIIMentorGraphitsModelSireNiosIIIDE,开发者能够从单个集成开发工具上编辑、编译、和编程板上Flash。◆MicroC/OS.IIRTOSMicroC/OS—IIRTOSMicrium系统,支持航空设备RTCADO·178B标准的强制要求。IPTCP/IPLightweightIPTCP/IPBerkeleysocketAP1IP,ICMP,UDP和带拥塞控制的TCP,RTT固件和快速恢复/快速重传。NiosIIMCUFPGA者增加多达256个用户定义指令扩展指令集,加快时闻关键处理任务。供向导式导入工具,设计者能用之集成他们自己的逻辑功能。NiosIIIDENiosIIIDE及一根JTAG电缆,软件开发人员就能够往NiosII处理器系统写入程序以及和NiosIINiosIIIDEEclipseIDEprojectEclipseC/C++NiosIIIDEC/C++应用程序工程和系统库工程。采用新工程向导,能够轻松地在NiosIIIDE中创建新工程。软件工程模板——除了工程创建向导,NiosIIIDE还以工程模板的形式提供了软件代码AlNiosIIIDEC/C++文本编辑器——NiosIIIDE文本编辑器是一个成全功能源文件编辑器。这些功能包括:语法显示-C/C++、代码辅助/代码协助完成、全面的搜索工具、文件管理、广泛的帮助和、引入辅助、快速定位自动纠错、内置调试功能。C/C++编译器——NiosIIIDEGCCNiosIIIDEAl的NiosII的makefile。NiosIIIDE中编译/设置的任何改变都会自动映射到这个自动生成的makefile中。这些设置可包括生成器初始化文件(MIF)的选项、闪存内容、仿真器初始化文件(DAT/HEX)以及profile总结文件的相关选项。基本调试功能——NiosIIIDE调试器包含如下的基本调试功能:运行控制、调用堆栈查件断点调试ROM或闪存中的代码、数据触发、指令。使用NiosII处理器的设计都在单板上采用了闪存,可以用来FPGA配置数据和/或NiosIINiosIIIDEFPGANiosIIIDEFPGAAl串行配置器件进行编程。niosDRAM请您参考Al公司提供的文档.DataWidth:数据位宽,ezNiosDK16ChipSelects:的片选信号,ezNiosDK的用户请选择1。Banks:设定DRAM的Bank数目。ezNiosDK的用户请选择4。Row:设定行地址线的数量。ezNiosDK的用户请选择12。Column:设定列地址线的数量。ezNiosDK的用户请选择8。命令发出到第一笔数据输出的这段时间,被定义为CL(CASLatency,CAS潜伏Initializationrefreshcycles:初始化过程中所需的刷新周期,ezNiosDK以选择2Isssueonerefreshcommandevery:刷新周期。ezNiosDK15.625usDRAMDRAM,就是因为它要不断进行刷新(Refresh)才能保留住数据,因此它是DRAM最重要的操作之一。刷新速度就是:行数量/64ms。我们在看内存规格时,经常会看到4096Refresh刷新操作分为两种:自动刷新(AutoRefreshAR)与自刷新(SelfRefresh,SR)。不论是何种刷新方式,都不需要外部提供行地址信息,因为这是一个内部CASRAS,ARCBR(CASBeforeRAS,列提前于行定位)964msSR需外部提供刷新指令)CKEDelayafterpowerup,beforeinitialization:上电后的稳定期。手册上一般给出的是200us,通常我们选择100us即可。选择70nsDurationofprechangecommand:预充电周期。在发出预充电命令之后,要经过一段频率而定。ezNiosDK的用户可以选择20ns。实际上,预充电是一种对工作行中所有体进行数据重写,并对行地址进行复位,数据回写。单元中的电容容量很小,即使是没有工作过的体也会因行选通而ACTIVEtoREADorWRITEdelay:ezNiosDKtoCASDelay(RASCAS),也可以理解为行选通周期,这应该是根据阵列电子元件响应时间(从一种状态到另一种状态变化的过程)所制定的延迟。tRCDSDRAMtRCD(tCK,ClockTime)数为单tRCD=2,就代表延迟周期为两个时钟周期,具体到确切的时间,则要根据时15ns。Accesstime:时间。ezNiosDK的用户可以选择5.4ns段时间我们称之为tAC(AccessTimefromCLK,时钟触发后的时间)。tAC的单位是ns,对于不同的频率各有不同的明确规定,但必须要小于一个时钟周期,否则会因时过长而使效率降低。比如PC133的时钟周期为7.5ns,tAC则是5.4ns。需要输的同时就开始了第二个数据的tAC。Writerecovertime:回写延迟。ezNiosDK0NiosIDEDRAMDRAMProgrammemoryRead-onlydatamemory或者Read/writedatamemory,如下图范例中,在systemlibraryproperties中,设置Programmemory,Read-onlydatamemory,Read/writedatamemory,DRAM的名字:sdram_0。这样把所有的数据都放在DRAM中.Q:EPCSX(64Mbits)A:EPCSX是64Mbits的Al配置,它本质上是一块flash,用于保存FPGA的配置信息。EP4C系列是基于sram的FPGA,您可以通过电缆来配置该,但掉电后,FPGA内部的配置信息会丢失;如果配合相应的配置,FPGA可以在上电的时候,从配置里面读出配置内容,这样上电后即可使用。:Q:板子上的外扩引脚(40个*2两排),i/oA:差分输入端当然可以作为普通i/o口来使用,他们的第能就是普通的I/O口,第二功能Q:您们的线是可以支持NIOSII的吗A:我们的线是ByteBlasterII或USBBLASTER,支持通过JTAG口来调试NIOSII,以及ByteBlasterIIJTAGNIOSII,但不支持AS方式。我们的线两者都支持!QNIOSQ:NIOS是否可以不使用SDRAM和并行A:首先说明一下,SDRAM是用来运行程序的,FLASH是用来程序代码码放到SDRAM中,然后再运行。FPGA内部的memory(onchipmemory)比较Q:我的QuartusII编译硬件时没有错误,但是在程序的时候去出现以下错误的信息?Info:StartedProgrammeroperationatThuMay0601:39:462010Error:ApplicationNios2on127.0.0.1isusingthetargetdeviceError:OperationfailedInfo:EndedProgrammeroperationatThuMay06 A:这种情况出现在JTAG模示下,你在使用NIOS下的JTAG功能(比如刟用BLASTER进行仿真)时你又想*.sof(就是在JTAG模示下程序。简再*.sof文件。初学者经常会犯这样的错误,一定要注意。Thesoftwaresetting(STF)fileassociatedwiththisprojectisdamaged.Thismaybefixedbycopyingyoursourcefilesintoanewc/c++applicationproject.Formoredetailsseetheerrorlog. 题还是NiosIIIDE对中文字符支持不好引起的,把 Usingcable"USB-Blaster[USB-0]",device1,instance0x00Pausingtargetprocessor:notresponding.Resettingandtryingagain:FAILEDLeavingtarget Error:Can'tconfigure device.ExpectedJTAGIDcode0x020010DDfordevice1,butfoundJTAGIDcode0x020B40DD.Q:在NOISII中Bulid例程o_world都出现了错误,错误提示为 n///uy error:parseerrorbefore'/'token等错误全部由alt_busy_sleep.c引起A:这是quartus 和NIOS安装版本不一致造成的大家要注意他们的版本一定要Q:在SOPC中Generate出现如下错误是怎么回事Error:Generator programformodule 'epcs_controller'didNOTrunsuccessfully.只要在SOPC中加入epcs_controller就会出现此错误,无法生A:问题的原因是 和Nios安装的版本不一致Q:在Quartus Can'tcepinsassignedtopin Q:如何在NIOSII Q:在SOPC添加 Bridge时,提示有如下错误,该如何解决Tristatebridge/tristatemasterrequiresaslaveoftypeAvalon addaslaveoftypeAvalontristate.Generate按钮为灰色,无法 把flash添加到sopc中就可以了Q:在做count_binaryerror:`BUTTON_PIO_IRQ' (firstuseinthisfunction)BUTTON_PIO_IRQ的值如何给他定义?A:这个错误可能是在sopc builder中定刢的pio端口名称是否不程序中用的不一致,要和程序里的一致,把pio组件的名称就改为button_pio。Q:在NIOS II中编译时出现如下错误怎么解决?错误是不是由SOPC中的RAM引regionramisfull(count_binary.elfsection.text).Regionneedsto24672byteslarger.address0x80c1f8ofcount_binary.elfsection.rwdataisnotwithinregionram.Unabletoreachedge_capture(at0x )fromtheglobalpointer(at0x c

温馨提示

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

评论

0/150

提交评论