[D-III] DE1-SOC 中FPGA的流水灯

Win 7 64bit + DE1-SOC(Cyclone V)


1 开发套件

开发板的处理芯片是Altera的Cyclone V SoC 5CSEMA5F31C6N。整块板子被称为DE1-SOC。


(1) 硬件

  • DE1-SOC 开发板。
  • A to B类型USB一根。
  • A to Mini-B类型USB一根。
  • 直流电适配器(12V)。

(2) 快速开始向导

对于FPGA新手来说,快速开始向导是入门FPGA的钥匙。首先到向导指定网址www.terasic.com 的Resources中下载开发套件DE1-SOC的系统盘(资料)。按照向导中的提示,先看资料中UserManual下的DE1-SOC_Getting_Started_Guide.pdf文档。


2 DE1-SOC_Getting_Started_Guide.pdf

这个文档会指导用户做两个后续会用到的操作。


(1) 安装quartus II 13.1

之前安装过quartus II 13.0。经实践发现quartus II 13.0与DE1-SOC板不搭:在为DE1-SOC下载.sof文件时quartus II 13.0不会弹出”Select Device”的对话框,最要紧的是quartus II 13.0不会为DE1-SOC生成.sof文件。


安装quartus II 13.1时,将与quartus II相关的软件(如ModelSimSetup-13.1.0.162,QuartusHelpSetup-13.1.0.162,DSPBuilderSetup-13.1.0.162等)和QuartusSetup-13.1.0.162放在一个目录下,双击QuartusSetup-13.1.0.162进行安装,相关的软件可以被QuartusSetup-13.1.0.162自动加载并安装。关于Cyclone V系列的设备可单独点击DeviceInstall-13.1.0.162程序进行安装。


若没破解quartus II 13.1也不会为设备输出.sof文件,网上存在quartus II对应版本的破解文件,按照其内的步骤操作即可破解quartus II。查看quartus II破解成功与否的方式:开始 >> 所有程序 >> Tools >>License Setup,若license Type后面为”Full Version”时表破解成功,这时Subscription Expiration的时间也比较长,如2035.12。


(2) 连接DE1-SOC与PC

DE1-SOC连接PC两个比较重要的步骤是设置MSEL值和USB-BlasterII 驱动的按照。按照文档中叙述的步骤操作即可完成DE1-SOC与PC的连接。下载.sof文件到DE1-SOC的工具软件在quartus II中。可在完成My_First_Fpga工程后体验下载程序的过程,My_First_Fpga整个工程的设计在My_First_Fpga.pdf文档中,它是一个点亮FPGA  LED灯的设计。


3 My_First_Fpga.pdf

在这个文档中,会假设读者具有一些基础,看来前期对FPGA的瞎蒙及瞎操作还是有点作用。

My_First_Fpga工程操作FPGA硬件的有两个地方,一个是PLL的时钟源,另一个是连接LED的引脚。两者可以在DE1-SOC_User_manual.pdf的“Clock Circuitry”和“Peripherals Connected to the FPGA”章节中分别查到。在My_First_Fpga.pdf中,直接给出了这些引脚。


(1) 选择设备

在新建工程的“Family & Device Settings”中选择Cyclone V(E/GX/GT/SX/SE/ST),这个选项是DE1-SOC处理器FPGA部分所属的系列。在“Autodevice selected by the Fitter”被选中的情况下,选择Available devices栏下列出的5CSEMA5F31C6N(这个也是DE1-SOC的型号)。


(2) HDL与原理图(符号)

原理图文件(.bdf)由原理图符号和连线组成,在此工程中需将原理图文件作为顶层文件设计(top-level design)

My_First_Fpga例子中,计数器simple_counter是用Verilog编写的。选中“simple_counter.v”文件,右键 >> Create Symbol Files for Current Files后,就会在工程目录下生成一个与simple_counter同名的bsf(blcok/schematic file)文件。


Verilog代码的一个模块与原理图符号的对应:

1.         //It has single clock input and a 32-bit output port

2.         module simple_counter(CLOCK_50, counter_out);

3.          

4.                  input                 CLOCK_50;

5.                  output     [31:0]counter_out;

6.                  reg            [31:0]counter_out;

7.          

8.                  always @(posedge CLOCK_50)      //On positive clock edge

9.                  begin

10.                        counter_out <= #1 counter_out + 1;    //Increment counter

11.              end

12.     endmodule


[D-III] DE1-SOC 中FPGA的流水灯_第1张图片

Figure1. simple_counter

Verilog代码的4 – 6行描述了simple_counter这个符号的输入输出类型,第10行描述了simple_counter的逻辑功能。在能用HDL描述数字元件的背后是拥有数电的功底。即先决定要用什么数字元件,如果库里面没有就可以自己用HDL来描述。


(3) 原理图符号库(symbol Libraries)

My_First_Fpga中PLL和Multiplexer数字符号都是从库中直接添加的,在添加这些元件到原理图文件(.bdf)中的同时,这些符号对应的HDL源码也被添加到工程中。直接调用这些库可以减少用户为这些元件编写代码的时间(对于一个熟数电的人来说,新手还是可以多编写练练手)。

练练手)。


这个libraries在“quartus按照目录/altera/13.1/quartus/”下,包含:

  • megafunctions(兆功能函数),包含很多可直接使用的参数化模块。
  • others中包含与maxplus软件兼容的所有中规模器件。
  • primitives(基本单元符号),包含Altera基本图元,如逻辑门,输入/输出端口等。

双击原理图(.bdf)界面就可以弹出添加原理图符号(symbol)的窗口。


(4) 引脚分配

为设计的数字逻辑电路的输入输出信号分配引脚的前提是用quartus II对原理图进行了Analysis Elaboration。


我希望在FPGA内部能具有这样的逻辑电路:

[D-III] DE1-SOC 中FPGA的流水灯_第2张图片
Figure2. 设计的数字逻辑电路

如果FPGA内部具有这样逻辑电路,那么只需要为FPGA指定对应的时钟输入CLOCK_50信号及LED[3..0]输出信号的地方。


My_First_Fpga工程的功能是通过时钟来驱动计数器,再通过计数器的输出来控制FPGA上的LED。My_First_Fpga.pdf从DE1-SOC_User_manual总结到:

[D-III] DE1-SOC 中FPGA的流水灯_第3张图片
Figure3. FPGA引脚与外设对应图

根据这个引脚对应图(途中的Pin Name是FPGA中引脚对应外设模块的名字),就可以在quartus II提供的引脚分配方式(Pin Planner, TCL)下将原理图中CLOCK_50和LED[3..0]信号分配到FPGA对应的引脚之上。


(5) 时序设置(.sdc)

时序设置对一个设计的成功至关重要。Quartus II软件的Timing Analyzer会用时序设计文件(.sdc)来检查设计是否符合时序文件中包含的时序约束要求。在这里用quartus II工具添加时序命令的背后是(数电)中的时序基础知识


若时序文件的命名与顶层文件名一致,则quartus II在进行时序分析时会默认使用这个文件。否则,需要单独加载时序文件到分配文件列表下。


(6) 编译

通过以上步骤完成一个设计后还需要通过编译将设计转换为能够下载到FPGA中的比特流文件。在编译后输出的最为重要的一个文件就是SRAM目标文件(.sof),这个文件能对FPGA进行编程。在编译过程中,quartus II也生成一些报告当前工程信息的报告文件,可根据这些报告文件的内容调试设计。


(7) 下载

下载这个操作建立在2.2这一步之上,如果DE1-SOC与PC能够正确连接,按照My_First_Fpga.pdf中的步骤就可以将.sof文件下载到FPGA中。Quartus II 13.1生成的.sof文件在工程下的output_files下。

[D-III] DE1-SOC 中FPGA的流水灯_第4张图片
Figure4. .sof文件下载成功界面
[D-III] DE1-SOC 中FPGA的流水灯_第5张图片
Figure5. EDA编译My_First_Fpga工程输出.sof在FPGA上的运行

4 总结

EDA(Quartus II)和FPGA的结合只是为了让开发人员更快更科学地开发(设计)数字系统。FPGA的流水灯工程更大程度上是让开发者熟悉使用EDA + FPGA的流程。作为数字系统的开发者,最核心的还是数字电路的功底与思想。


5 被建议的入门路线

[D-III] DE1-SOC 中FPGA的流水灯_第6张图片

[2014.10.30 - 22:28]
R《ETF》Note Over.

你可能感兴趣的:([D-III] DE1-SOC 中FPGA的流水灯)