EP2C5Q208C开发板原理图
- 格式:pdf
- 大小:147.67 KB
- 文档页数:18
NIOS教程(1) --------建立一个最小系统简介NIOS是一个用户可配置的通用32位RISC嵌入式处理器,它是SOPC(System On a Programmable Chip,片上可编程系统)的核心。
处理器以软核形式实现,具有高度的灵活性和可配置性。
NIOS的开发包括硬件开发和软件开发两部分。
硬件开发是在Quartus II中实现的,而软件开发部分是在NIOS IDE软件中实现的。
我们首先来介绍NIOS的硬件逻辑开发。
所谓硬件逻辑开发就是用Quartus II 和 SOPC Builder来建立自己需要的软核。
1.先打开QuartusII 9.0SP2软件点击菜单栏FileÆ New Project Wizard,弹出如下对话框点击Next>按钮继续,在此步中,What is the working directory for this project? 是询问你的这个项目工程打算放在哪里?我们改为d:\ask2cb_nios\nios1 (表示整个工程建立在D盘的ask2cb_nios\nios1目录下面) What is the name of this project? 是询问你这个工程项目名是什么?我们改为nios1(表示这是第一个nios示例工程)What is the name of the top-level design entity for this project? 是询问这个工程项目的顶层设计入门名我们改为nios1,表示顶层模块名为nios1改成如下图所示:点击Next>继续提示D盘下面没有ask2cb_nios目录下的nios1这个目录,询问是否要创建它,选择是(y),让QuartusII创建这个目录。
向导开始询问是否有现成的文件需要加到当前新建的工程中?这步不用管它,点击Next>继续,在此步中,向导询问你使用的是何种器件,我们在Device family组合框中,Family下拉列表中选择CycloneII,在Available devices:下面的列表框中选择EP2C5Q208C8,这是我们ASK2CB-5开发板所使用的FPGA主芯片(EP2C5Q208C8),如果您购买的是ASK2CB-8开发板,请选择EP2C8Q208C8。
EP2C5Q208C8N管脚分配############################################# ## /doc/5de5fc9e51e79b896802269f.html ############################################# ##------------------GLOBAL--------------------#set_global_assignment -name RESERVE_ALL_UNUSED_PINS "AS INPUT TRI-STATED" set_global_assignment -name ENABLE_INIT_DONE_OUTPUT OFFset_location_assignment PIN_23 -to clockset_location_assignment PIN_131 -to rst_n#------------------SDRAM---------------------#set_location_assignment PIN_56 -to S_DQ[0]set_location_assignment PIN_57 -to S_DQ[1]set_location_assignment PIN_58 -to S_DQ[2]set_location_assignment PIN_59 -to S_DQ[3]set_location_assignment PIN_60 -to S_DQ[4]set_location_assignment PIN_61 -to S_DQ[5]set_location_assignment PIN_63 -to S_DQ[6]set_location_assignment PIN_64 -to S_DQ[7]set_location_assignment PIN_80 -to S_DQ[8]set_location_assignment PIN_77 -to S_DQ[9]set_location_assignment PIN_76 -to S_DQ[10]set_location_assignment PIN_75 -to S_DQ[11]set_location_assignment PIN_74 -to S_DQ[12]set_location_assignment PIN_72 -to S_DQ[13]set_location_assignment PIN_70 -to S_DQ[14]set_location_assignment PIN_69 -to S_DQ[15]set_location_assignment PIN_104 -to S_A[1]set_location_assignment PIN_106 -to S_A[2]set_location_assignment PIN_105 -to S_A[3]set_location_assignment PIN_94 -to S_A[4]set_location_assignment PIN_92 -to S_A[5]set_location_assignment PIN_90 -to S_A[6]set_location_assignment PIN_89 -to S_A[7]set_location_assignment PIN_88 -to S_A[8]set_location_assignment PIN_87 -to S_A[9]set_location_assignment PIN_102 -to S_A[10]set_location_assignment PIN_86 -to S_A[11]set_location_assignment PIN_82 -to S_CLKset_location_assignment PIN_99 -to S_BA[0] set_location_assignment PIN_101 -to S_BA[1] set_location_assignment PIN_95 -to S_nCAS set_location_assignment PIN_84 -to S_CKE set_location_assignment PIN_96 -to S_nRAS set_location_assignment PIN_68 -to S_nWE set_location_assignment PIN_97 -to S_nCS set_location_assignment PIN_67 -to S_DQM[0] set_location_assignment PIN_81 -to S_DQM[1]#--------------------LED----------------------#set_location_assignment PIN_142 -to led[1]set_location_assignment PIN_141 -to led[2]set_location_assignment PIN_139 -to led[3]set_location_assignment PIN_138 -to led[4]set_location_assignment PIN_137 -to led[5]set_location_assignment PIN_135 -to led[6]set_location_assignment PIN_134 -to led[7]#--------------------KEY----------------------#set_location_assignment PIN_107 -to key[0] set_location_assignment PIN_108 -to key[1] set_location_assignment PIN_110 -to key[2] set_location_assignment PIN_112 -to key[3] set_location_assignment PIN_113 -to key[4] set_location_assignment PIN_114 -to key[5] set_location_assignment PIN_115 -to key[6] set_location_assignment PIN_116 -to key[7]#--------------------CKEY----------------------#set_location_assignment PIN_128 -to ckey[1] set_location_assignment PIN_127 -to ckey[2] set_location_assignment PIN_118 -to ckey[3] set_location_assignment PIN_117 -to ckey[4]#--------------------DIG----------------------#set_location_assignment PIN_150 -to dig[0]set_location_assignment PIN_149 -to dig[1]set_location_assignment PIN_152 -to dig[2] set_location_assignment PIN_151 -to dig[3]set_location_assignment PIN_205 -to dig[4]set_location_assignment PIN_206 -to dig[5]set_location_assignment PIN_207 -to dig[6]set_location_assignment PIN_208 -to dig[7]set_location_assignment PIN_170 -to seg[0]set_location_assignment PIN_165 -to seg[1] set_location_assignment PIN_169 -to seg[2]set_location_assignment PIN_175 -to seg[3]set_location_assignment PIN_173 -to seg[4]set_location_assignment PIN_168 -to seg[5]set_location_assignment PIN_164 -to seg[6] set_location_assignment PIN_171 -to seg[7]#--------------------BEEP----------------------#set_location_assignment PIN_3 -to beep#--------------------UART----------------------#set_location_assignment PIN_143 -to rxdset_location_assignment PIN_144 -to txd#--------------------LCD----------------------#set_location_assignment PIN_180 -to lcd[1]set_location_assignment PIN_185 -to lcd[2]set_location_assignment PIN_182 -to lcd[3] set_location_assignment PIN_188 -to lcd[4]set_location_assignment PIN_187 -to lcd[5]set_location_assignment PIN_191 -to lcd[6]set_location_assignment PIN_189 -to lcd[7]set_location_assignment PIN_193 -to lcd[8]set_location_assignment PIN_192 -to lcd[9]set_location_assignment PIN_197 -to lcd[10] set_location_assignment PIN_195 -to lcd[11]#--------------------AD----------------------#set_location_assignment PIN_31 -to adc_clkset_location_assignment PIN_33 -to cs_nset_location_assignment PIN_30 -to sdat_in#--------------------DA----------------------#set_location_assignment PIN_47 -to dac_clkset_location_assignment PIN_48 -to dac_data set_location_assignment PIN_46 -to dac_ldac set_location_assignment PIN_45 -to dac_load#--------------------PS2----------------------#set_location_assignment PIN_145 -to ps2_clkset_location_assignment PIN_146 -to ps2_dat#--------------------DS18B20------------------#set_location_assignment PIN_147 -to ds18b20#--------------------VGA----------------------#set_location_assignment PIN_5 -to hsync set_location_assignment PIN_4 -to vsync set_location_assignment PIN_14 -to vga_r[0] set_location_assignment PIN_15 -to vga_r[1] set_location_assignment PIN_12 -to vga_r[2] set_location_assignment PIN_13 -to vga_g[0] set_location_assignment PIN_10 -to vga_g[1] set_location_assignment PIN_11 -to vga_g[2] set_location_assignment PIN_6 -to vga_b[0] set_location_assignment PIN_8 -to vga_b[1]#--------------------RTC----------------------#set_location_assignment PIN_40 -to rtc_scl set_location_assignment PIN_41 -to rtc_sda#--------------------IIC----------------------#set_location_assignment PIN_43 -to i2c_scl set_location_assignment PIN_44 -to i2c_sda#------------------END-----------------------#。
LED驱动实验(新建一个工程实例详细操作)学习FPGA知识最重要的是在掌握基本理论的基础上,以实践和动手为主,下面将以LED 驱动为例,以尽量详细的写法将FPGA开发的基本流程写清楚,熟悉使用QuartusII软件,通过实战来理解和掌握这些知识和技巧。
说起LED驱动,学电子的都不陌生,在我看来,相当于学CS的入门编的第一个程序”Hello word!”,呵呵.虽然简单,但仍能从中学到很多基础知识,通常情况,LED两端需要通过一定的电流且存在一定的压差才能使得其发光。
不能直接通过两端接电源和地来点亮,需要加一个限流电阻,控制LED流过的电流不要太大。
以下部分由于是用EP2C5Q208的开发板为基本所写,在部分内容上与助学板有所差别,请酌情灵活稍加改动即可。
睿智FPGA开发板底板上共有8个发光二极管LED1-LED8,(注意:核心板上的2个发光二极管LED1,LED2与底板LED1,LED2连接相同的FPGA引脚),我们先完成这样一个任务:是要间隔点亮这8个发光二极管。
硬件原理图如下:可知:如果要点亮这些LED,只需要把与其相连接的FPGA管脚输出低电平“0”就可以实现这个功能了。
如果我们利用连续赋值语句assign实现的话,写程序代码如下:module led_light(led);output[7:0]led;assign led=8'b10101010;endmodule下面我们就以这个简单的例子进行新建工程的全部过程,对于完全新手来说很有参考价值,希望大家都能熟练掌握!启动QuartusⅡ中任何一项设计都是一项工程,在工程设计过程中,会产生许多仅扩展名不同的同名文件,放在同一个文件夹下,便于统一管理。
所以,不同的设计项目最好放在不同的文件夹中。
在本例中,建立文件夹D:\FPGA_study作为工作库,以便将设计过程中的相关文件存储于此。
启动Quartus II双击桌面上的QuartusⅡ图标或单击开始按扭,在程序菜单中选择QuartusⅡ9,可以启动QuartusⅡ。
Cyclone II EP2C5/8 启蒙板说明书 Cyclone II EP2C5/8 Start Board User Manual Version 2.1 Copyright © 线路人生|Circuitry Life 线路人生|Circuitry Life 版本修订记录 Version 1.0 2.0 2.1 2.2 Author zhiyuh zhiyuh zhiyuh Zhiyuh Data 2009‐6‐3 2009‐6‐12 2009‐07‐09 2009‐08‐22 Cyclone II EP2C5/8 Start Board Description First draft. 根据 Rev.B 电路图修改相关内容,并补充各电路 与 FPGA 之间的引脚连接定义。
增加兼容设计方面的解释内容,完善部分 BOM。
修改首页图片,BOM 增加备注。
备注:关于修订的说明 ~ 2 ~ 线路人生|Circuitry Life Cyclone II EP2C5/8 Start Board 目录 1. 模块介绍 ........................................................................................................................... 4 1.1 1.2 模块主要功能 ............................................................................................................ 4 模块适用范围 ............................................................................................................ 4 2. 包装清单 ........................................................................................................................... 4 2.1 2.2 模块包装清单 ............................................................................................................ 4 安装说明 .................................................................................................................... 4 3. 硬件说明 ........................................................................................................................... 5 3.1 电路说明 .................................................................................................................... 5 FPGA 芯片及主要外围电路............................................................................... 5 电源电路 ............................................................................................................ 7 存储器电路 ........................................................................................................ 8 板载 LED 测试电路 .......................................................................................... 13 IO、控制线和总线引出接口 .......................................................................... 14 . 硬件的其它说明 .............................................................................................. 15 3.1.1. 3.1.2. 3.1.3. 3.1.4. 3.1.5. 3.1.6. 3.2 3.3 4. 5. 6. 7. 器件清单(BOM) ................................................................................................. 15 . 电路板相关尺寸参数 .............................................................................................. 17 使用注意事项 ................................................................................................................. 17 技术支持 ......................................................................................................................... 18 硬件原理图 ..................................................................................................................... 18 其它备注 ......................................................................................................................... 18 ~ 3 ~ 线路人生|Circuitry Life Cyclone II EP2C5/8 Start Board 1. 模块介绍 1.1 模块主要功能 数字系统和 SOPC 设计在广大学生和爱好者中已经形成了一定的学习氛围和规模,但市 场上的开发板和学习板良莠不齐,为此线路人生|Circuitry Life 特设计了本模块,中文名为 “Cyclone II EP2C5/8 启蒙板” ,英文名为“Cyclone II EP2C5/8 Start Board” 。
NIOS教程(4) --------使用板载的SRAM存储器在此实验中我们将建立一个NIOS工程,实验点亮LED的演示使用板载的SRAM并且烧代码烧录到板载的EPCS4存储配置芯片中运行。
1.先打开QuartusII 9.0SP2软件点击菜单栏FileÆ New Project Wizard,弹出如下对话框点击Next>按钮继续,在此步中,What is the working directory for this project? 是询问你的这个项目工程打算放在哪里?我们改为D:\ask2cb_nios\nios4 (表示整个工程建立在D盘的ask2cb_nios目录下的NIOS4目录下面)What is the name of this project? 是询问你这个工程项目名是什么?我们改为nios4(表示这是第四个nios示例工程)What is the name of the top-level design entity for this project? 是询问这个工程项目的顶层设计入门名我们改为nios4,表示顶层模块名为nios4改成如下图所示:点击Next>继续提示D盘ask2cb_nios目录下下面没有nios4这个目录,询问是否要创建它,选择是(y),让QuartusII创建这个目录。
向导开始询问是否有现成的文件需要加到当前新建的工程中?这步不用管它,点击Next>继续,在此步中,向导询问你使用的是何种器件,我们在Device family组合框中,Family下拉列表中选择CycloneII,在Available devices:下面的列表框中选择EP2C5Q208C8,这是我们ASK2CB-5开发板所使用的FPGA主芯片(EP2C5Q208C8),如果您购买的是ASK2CB-8开发板,请选择EP2C8Q208C8。
在本教程中,默认采用的是EP2C5Q208C8,如果你的开发板上的FPGA主芯片为EP2C8Q208,请修改相应的器件为EP2C8Q208C8点击Next按钮继续在此步中询问你要使用何种综合工具,仿真工作,时序分析工具,不用管它,点Next>继续,最后显示一个整个新建的Project的摘要。
EP2C5T144C8N/EP2C5Q208C8N1/1. I/O, ASDO:在AS 模式下是专用输出脚,在PS 和JTAG 模式下可以当I/O 脚来用。
在AS 模式下,这个脚是CII 向串行配置芯片发送控制信号的脚。
也是用来从配置芯片中读配置数据的脚。
在AS 模式下,ASDO 有一个内部的上拉电阻,一直有效,配置完成后,该脚就变成三态输入脚。
ASDO 脚直接接到配置芯片的ASDI 脚(第5 脚)。
2/2. I/O,nCSO:在AS 模式下是专用输出脚,在PS 和JTAG 模式下可以当I/O 脚来用.在AS 模式下,这个脚是CII 用来给外面的串行配置芯片发送的使能脚。
在AS 模式下,ASDO 有一个内部的上拉电阻,一直有效。
这个脚是低电平有效的。
直接接到配置芯片的/CS 脚(第1 脚)。
3/3. I/O,CRC_ERROR:当错误检测CRC 电路被选用时,这个脚就被作为CRC_ERROR 脚,如果不用默认就用来做I/O。
但要注意,这个脚是不支持漏极开路和反向的。
当它作为CRC_ERROR 时,高电平输出则表示出现了CRC 校验错误(在配置SRAM 各个比特时出现了错误)。
CRC 电路的支持可以在setting 中加上。
这个脚一般与nCONFIG 脚配合起来用。
即如果配置过程出错,重新配置。
4/4. I/O,CLKUSR:当在软件中打开Enable User-supplled start-up clock(CLKUSR)选项后,这个脚就只可以作为用户提供的初始化时钟输入脚。
在所有配置数据都已经被接收后,CONF_DONE 脚会变成高电平,CII 器件还需要299 个时钟周期来初始化寄存器,I/O 等等状态,FPGA有两种方式,一种是用内部的晶振(10MHz),另一种就是从CLKUSR 接进来的时钟(最大不能超过100MHz)。
有这个功能,可以延缓FPGA 开始工作的时间,可以在需要和其它器件进行同步的特殊应用中用到。