资源描述
FPGA实验培训讲义
运用RCII-SP3S400开发板做FPGA实验,应具有一些条件:
1、应用此开发板应当具有的基础知识
1)HDL相关知识:
FPGA的设计与应用涉及到软件和硬件相关的知识,规定学员具有了一定的Verilog或VHDL基础。假如没有这方面的基础,可以运用课余时间把相关内容补上。
2)电路相关知识:
由于用FPGA开发板做实验,也许要涉及到硬件的测试等,这规定学员对开发板的整个结构和原理图要有个充足的了解,有助于硬件的调试和测试。
3)接口协议
该开发板提供了相关标准接口,如串口、LCD、USB等,假如要用这些接口,希望对大家能对这些接口协议有了基本的了解,有助于相关实验的进行。
4)FPGA知识
对FPGA的内部结构和相关资源的了解,能充足运用FPGA的资源,可加速实验的进展。所以建议学员对FPGA的基本结构和性能有个大体了解。
2、使用开发板前的准备工作:
1)设计软件的安装
使用此开发板前,一方面保证已安装了相关的设计软件,在开发包中提供现在主流的一些设计软件,涉及:ISE12.2、ModelSim、Synplify,ChipScope和XilinxEDK,其中ISE12.2为Xilinx公司专门用于FPGA开发的工具,ModelSim和Synplify是目前应用比较广泛的仿真工具和综合工具,ChipScopePro是一个功能很强大的在线逻辑分析工具,在FPGA的调试阶段很有用,假如没有安装这些软件,请先安装上述软件。建议先装ISE,再装其它的辅助工具。
2)熟悉开发板的硬件环境
参照提供的原理图,对照开发板,了解一下FPGA外围器件和接口的配置,对电路板的整体情况有个了解,便于以后的开发。特别是FPGA的供电电路以及FLASH的配置方法,有助于以后做相关FPGA的开发。
3)运用本开发板进行FPGA实验的安排
运用本开发板的实验分为四个节点,不同的节点侧重点不同,学习的内容和深度也有所不同。下面给出学习建议:
第一节点为基本实验。通过这部分实验,希望学员可以掌握FPGA开发的一个基本的流程,从设计到验证再到最后的实现,重要是熟悉XilinxFPGA设计工具ISE的使用。通过Verilog或VHDL源代码的输入,设计译码器逻辑功能,熟悉FPGA的基本设计流程。
第二节点为存储器IP实验,通过这部分实验,了解如何运用FPGA内部的BlockRAM资源和FPGA外围电路中经常用到的几种存储器SRAM、SDRAM、FIFO和FLASH,掌握运用开发工具所提供的存储器IP核来实现存储器的设计和使用。
第三节点为设计实验,在第一节点和第二节点的基础上,运用Verilog或VHDL适合分层设计的思想,通过采用存储器IP核和相关逻辑实现FIFO功能,学习如何运用FPGA来实现比较复杂器件功能。
第四节点为接口设计实验,这一部分内容有一定的难度,是前几部分的综合运用。一方面在FPGA内实现一个FIFO;再在FPGA内设计一个接口逻辑电路可实现ARM对FIFO读写操作,通过编写ARM程序实现对FIFO的读写。
通过这几个节点的实验,使得大家对FPGA的设计有个比较全面的了解,从简朴到复杂,由浅入深,可以自己独立的完毕设计。FPGA的学习涉及很多内容,不是一朝一夕就能精通的,需要付出艰辛的努力,希望这套开发系统可以让给您有一个好的开始,为您未来的学习打下比较坚实的基础。
请记住下面的一些经验:
n 要开发FPGA,不仅需要纯熟掌握verilogHDL语言,还需要了解FPGA芯片结构、专用模块和其底层内嵌单元(全局时钟网络、DLL模块、DCM模块、内嵌的块存储单元、硬核乘法器、高速收发器和嵌入式解决器等)的使用方法。
n 实用的FPGA设计方法把verilogHDL当作是一种胶合物,将芯片特有的组件融合其中,只有这样才干进行高效的开发,达成事半功倍的效果。
n 面向硬件的设计思维就是指将具体功能形成硬件的RTL级模型,选择具体的物理电路来实现,再用品体合适的语言去描述,而不是凭空写verilog代码。
n 并不是所有用verilogHDL语言写的程序都是硬件可综合的。
n 用verilogHDL语言来编程必须采用良好的代码风格;不仅在于了解verilogHD的语法和语句,更多的要积累实践经验,一定要注意调试过程中对相关问题和结论进行积累,才干逐步形成优秀的代码设计风格。
n 充足合理地运用约束文献。FPGA的可编程特性使PCB设计、加工和FPGA设计可同时进行,不必等到FPGA管脚位置完全拟定后再进行,节省系统开发时间。
n 在高速FPGA设计开发时,一定要重视时序!
4、使用开发板的注意事项
使用此开发板需要注意以下几个问题:
Ø 1)供电问题。
开发系统为开发板提供了一个5V的电源,请勿使用其他电源,以免电压不符导致开发板损坏。此外,在开发板电源边上有一个开关,用户可以不必每次插拔电源,只需用此开关来控制即可。
2)请不要在上电时插拔各种接口,如JTAG、串口、VGA口、USB等
3)带电测量时千万要小心不要引起电路短路
实验一、ISE安装和开发流程
一、了解ISE软件的功能和组成
Xilinx公司的ISE软件是一套以开发Xilinx公司的FPGA&CPLD的集成开发软件,它可以给用户提供一个从设计输入到综合、布线、仿真、下载的全套解决方案,其工作流程无需借助任何第三方EDA软件,但其也可以很方便地与其他EDA工具接口。
设计输入:HDL代码输入、原理图编辑输入、IPcore输入、StateCAD状态机编辑输入和约束文献输入。
综合:Xilinx自身提供的综合工具XST,可以与MentorGraphic公司的LeonardoSpectrum和Synplicity公司的Synplify无缝链接。
仿真:ISE自带一个具有图形化波形编辑功能的仿真工具HDLBencher,同时提供使用MentorGraphic公司的ModelSim进行仿真的接口。
实现:涉及翻译、映射、布局布线等,还具有时序分析、管脚指定以及增量设计等功能。
下载:BitGen将布局布线后的设计文献转换为位流文献;iMPACT进行设备配置和通信,控制将程序烧写到FPGA芯片或PROM芯片中去。
二、安装ISE软件和FPGA开发环境建立
1.ISE12.2的安装
1)、选择安装文献下的xsetup.exe,连续nextoraccept。
2)、选择ISEDesignSuite:SystemEdition,next,wait……
3)、与matlab2023进行关联,点击ok。ISE12.2只能与MATLAB2023相关联,如未安装MATLAB2023,则不会提醒。可以选择chooselater。
4)、license安装。选择LocateExistingLicense(s)。
5)、点击Copylicense….,选择文献途径,在安装目录下的:license12x.lic
6)、至此,ISE安装完毕,将下载器通过USB接口连接至PC机,即可自动完毕下载器的驱动安装
7)、ISE12.2组件在开始——程序——XilinxISEDesignSuite12.2。
2.FPGA开发环境的建立
2.1开机操作
FPGA可编程逻辑器件系统实验以FPGA实验箱为基础,重要需要以下组件及配件:
n FPGA实验板
n JTAG下载器(含JTAG10芯连接线,USB接口线)
n 电源
开机环节如下:
1) 一方面拟定电源已关闭
2) 按下图图示连接硬件设备和配件
3) 接入电源,打开电源开关
4) 检查下载器状态是否正常
2.2关机操作
1)关闭电源
2)拆除连接线装箱
三、ISE的使用
在计算机桌面上双击ISE图标,便可以启动ISE软件的运营。整个界面采用标准Windows格式,共分8个部分:标题栏、菜单栏、工具栏、工程管理栏、源代码文献编辑区、过程管理区、信息显示区和状态栏。
标题栏
菜单栏
工具栏
工程管理区
源代码编辑区
过程管理区
信息显示区
状态栏
具体菜单栏中的各项的具体功能可以阅读相关资料。下面具体介绍运用ISE软件开发FPGA的整个过程。
1、新工程建立
选择“File|NewProjiect”选项,弹出新建工程的对话框,输入工程名,选择所存途径,至于顶层源文献类型默认为HDL,点击NEXT进入工程属性,选择器件类型、封装、速度、综合工具、仿真工具以及喜欢的硬件描述语言,详见下图设立。择好后点击OK进入下一页,可以选择新建源代码文献,也可直接跳过,进入下一页。如已有源代码文献,则可以添加到工程中;如没有,则单击“NEXT”进入最户一页,单击“OK”就建立一个完整的工程文献。
2、代码输入
1) 在工程管理区点击鼠标右键,弹出菜单选择NewSource,或者在Project栏目菜单中选择NewSource,弹出界面;
2) 输入文献名,选择源码类型,这里选择VerilogModule,单击NEXT进入端口定义对话框;
3) 输入端口名,选择端口的方向属性、总线以及MSB、LSB等,也可以在代码中进行声明。单击NEXT进入下一个界面;
4) 示例程序的verilogHDL程序:
moduleSEGdisp(SEG_LED,VD_data,SW);
output[3:0]SEG_LED;
input[3:0]SW;
output[7:0]VD_data;
reg[7:0]VD_data;
reg[3:0]SEG_LED;
always@(SW)begin
case(SW)
4'b1110:begin
SEG_LED<=4'b0001;
VD_data<=8'b0110_0000;
end
4'b1101:begin
SEG_LED<=4'b0010;
VD_data<='b1101_1010;
end
4'b1011:begin
SEG_LED<=4'b0100;
VD_data<=8'b1111_0010;
end
4'b0111:begin
SEG_LED<=4'b1000;
VD_data<=8'b0110_0110;
end
default:begin
SEG_LED<=4'b0000;
VD_data<=8'b1111_1111;
end
endcase
end
endmodule
5) 单击“FINISH”,完毕新源代码文献的建立。
当代码编辑完毕后要存盘时,ISE12.2要检查代码的语法,如有错误,则存盘时在信息状态栏当中会给出犯错信息。根据犯错信息修改代码,直到没有语法错误为止。
3、进行仿真
ISE仿真有两种方法:一种是运用HDLBencher的图形化波形编辑功能编写测试文献;另一种是运用HDL语言编写测试文献,这里介绍运用HDL语言来构建测试平台。
1) 测试平台建立
a) 在工程管理区点击鼠标右键,弹出菜单选择NewSource,弹出界面;
b) 输入文献名,选择VerilogTestFixture,打钩addtoproject,单击NEXT;
c) 选择要仿真的文献,点击NEXT;
d) 点击“FINISH”,就生成一个Verilog测试模块。
ISE能自动生成测试平台的完整构架,涉及所需信号、端口声明以及模块调用的实现。所需要完毕的工作就是initial….end模块中的“//Addstimulushere”后面添加测试向量生成代码。
这里给出示例测试代码,将其添加于//Addstimulushere处
#100;
SW=7;
#100;
SW=11;
#100;
SW=13;
#100;
SW=14;
2) 测试平台建立后,在工程管理区将状态设立为“Simulation”;选择要仿真的文献名,过程管理区就会显示“Isimsimlator”;
3) 下拉“Isimsimlator”,选择“SimulateBehavioralModel”,单击鼠标右键,现在“ProcessProperties”可修改仿真远行时间等。
4) 修改后,直接双击“Isimsimlator”中的“SimulateBehavioralModel”进行仿真。检查仿真结果是否达成预期设计目的。
4、约束文献的编写
约束是FPGA开发中不可缺少的一部分。FPGA设计中有3类约束文献:用户设计文献(.UCF)、网表约束文献(.NCF)和物理约束文献(.PCF)。这里对我们开发FPGA过程常用的FPGA管脚约束文献进行描述。可以用文本编辑器和Xilinx约束文献编辑器进行编辑。
1) 约束文献建立
a) 在工程管理区点击鼠标右键,弹出菜单选择NewSource,或者在Project栏目菜单中选择NewSource,弹出界面;
b) 输入文献名,选择ImplementionConstraintsFile,点击NEXT;
c) 如有多个文献,则选择相应文献,点击NEXT;
d) 点击“FINISH”,完毕约束文献的创建。
2) 编辑约束文献
管脚约束文献的语法为:
NET“Signal_Port_Name”LOC=“Chip_Port”;
可用“#”或“/*……..*/”添加注释。需要注意的是UCF文献对字母的大小写敏感,信号名必须和设计中保持大小写一致。此外要搞清楚FPGA芯片管脚的编号方式,因不同类型的FPGA管脚编号也许是不同的,一旦选定了FPGA,知道其编号方式,就可在管脚约束文献引用。否则会犯错的。
#pin2ucf-ThuNov2517:05:092023
#Thefollowingconstraintswerenewlyadded
NET"SEG_LED<0>"LOC=P5;
NET"SEG_LED<1>"LOC=P4;
NET"SEG_LED<2>"LOC=P3;
NET"SEG_LED<3>"LOC=P2;
NET"SW<0>"LOC=P58;
NET"SW<1>"LOC=P57;
NET"VD_data<0>"LOC=P194;
NET"SW<2>"LOC=P52;
NET"VD_data<1>"LOC=P196;
NET"SW<3>"LOC=P51;
NET"VD_data<2>"LOC=P197;
NET"VD_data<3>"LOC=P198;
NET"VD_data<4>"LOC=P199;
NET"VD_data<5>"LOC=P200;
NET"VD_data<6>"LOC=P203;
NET"VD_data<7>"LOC=P204;
5、综合
完毕了输入、仿真以及管脚分派后,就可以进行综合和实现。
选择要综合的文献,在过程管理区中双击“Synthesis-XST”可以完毕综合操作,综合也许有3种结果:
a) 综合后完全对的,则在“Synthesis-XST”前面有一个打钩的绿色小圆圈,且在信息显示区里显示process“Synthesis-XST”completedsucessfully。用鼠标右键点击“Synthesis-XST”选择“viewTextReport”查看综合报告,了解FPGA资源使用情况等。
b) 如有告警,则出现一个带感慨号的黄色小圆圈,在信息显示区的“warning”中可以看到相关信息;
c) 如有犯错,则出现一个带叉的红色小圆圈,在在信息显示区的“error”中可以看到相关的犯错信息;
综合对的完毕后,可以通过双击“ViewRTLSchematic”来查看RTL级构图,检查是否按照设计意图来实现电路。
此外需注意的,一般可使用XST属性的默认值来综合,但XST也提供丰富、灵活的属性配置,可鼠标用右键点击“Synthesis-XST”,选择“processproperties”从三个方面来配置:synthesisoption、HDLoption以及specificoption,具体可参阅相关资料。
6、实现
将综合输出的逻辑网表翻译成所选器件的底层模块和硬件原语,将设计映射到器件结构上,进行布局布线,到达在选定器件上实现设计的目的。涉及三个环节:翻译(Translate)逻辑网表、映射(Map)和布局布线(Place&Route)。
通过选择“ImplementDesign”便可以完毕整个实现过程,实现后在“ImplementDesign”前面有一个打钩的绿色小圆圈,同时可在信息显示区中得到精确的资源占用情况。
7、编程文献产生
只需在过程管理区中双击“GenerateProgrammingFile”选项即可生成编程文献。完毕后该选项前面会出现一个打钩的绿色小圆圈。所生成的编程文献放在ISE工程目录下,是一个扩展名为.bit的位流文献。
8、编程下载
在“ConfigureTargetDevice”选项下,选择“ManageConfigurationProject(iMPACT)”,弹出iMPACT界面,用鼠标双击“BoundaryScan”,
然后选择“InitializeChain”,假如FPGA配置电路JTAG测试对的,会将JTAG链上扫描到得所有芯片在iMPACT主界面上列出来。
JTAG链检测对的后,在盼望的FPGA芯片上单击鼠标右键,在弹出的菜单中选择“AssignNewConfigurationFile”,选择后缀为.bit的二进制比特流文献。选中下载文献后,单击“打开”按钮,在iMPACT的主界面会出现一个芯片模型以及位流文献的标志。在此标志上单击鼠标右键,在弹出的对话框中选择“Program”选项,单击“OK”,就可以对FPGA设备进行编程,编程配置成功后,弹出配置成功的界面“ProgrammSuceeded”。
如要对PROM进行配置就必须要产生PROM文献,才干保证FPGA上电后自动加载逻辑并正常工作。
在“ConfigureTargetDevice”选项下,选择“ManageConfigurationProject(iMPACT)”,弹出iMPACT界面,选择“CreatePROMFile(PROMFilefrom……),进入PROMFileFormatter。STEP1:选择XilinxFlash/PROM,点击,STEP2:PROMFamily选择PlatformFlash,Device选择xcf02s,点击AddStorageDevice,点击,STEP3:输入输出文献名和选择输出文献存储途径,点击OK。接着出现添加器件界面,点击OK;选择.bit文献,点击“打开”,如只有一个芯片就选择NO,如尚有其他芯片需要编程,则选择“YES”,在这里选择“NO”,接着提问你所添加的器件完毕吗?点击“OK”。点击相应器件,用鼠标右键可对所选器件进行编辑,可改变器件或删除器件。在“Operation”菜单下选择“GenerateFile”就可以产生PROM文献。产生结束会显示“GenerateSucceeded”。
用鼠标双击“BoundaryScan”,然后选择“InitializeChain”,假如FPGA配置电路JTAG测试对的,会将JTAG链上扫描到得所有芯片在iMPACT主界面上列出来。JTAG链检测对的后,在盼望的PROM芯片上单击鼠标右键,在弹出的菜单中选择“AssignNewConfigurationFile”,选择后缀为.MCS文献。选中下载文献后,单击“打开”按钮,在iMPACT的主界面会出现一个芯片模型以及.MCS文献的标志。在此标志上单击鼠标右键,在弹出的对话框中选择“Program”选项,单击“OK”,就可以对PROM设备进行编程,编程配置成功后,弹出配置成功的界面“ProgrammSuceeded”。
到此为止实现了一个完整的FPGA设计流程,以上介绍的只是ISE软件中最基本的操作,更多的内容和操作通过阅读或在实践中来纯熟。
展开阅读全文