======快速上手STEP MAX10======
参考[[Quartus安装及配置]]安装号Quartus Prime,现在我们就可以使用Quartus进行FPGA的设计了,整个设计流程参考下图:
=====1.创建第一个工程=====
====1.1新建工程===
(1)启动Quartus软件:双击Quartus系列软件图标,界面如下(以Quartus Prime16.1为例)。
{{ :qu12.png?700 |}}
(2)创建工程:点击File→New Project Wizard选项 或 点击Home页面中的New Project Wizard图标。
{{ :qu13.png?700 |}}
(3)工程目录、名称填写:(注意:工程目录中不能有汉语、空格等字符)
* 工程目录:选择新建工程的目录;
* 工程名称:填写工程名称;
* 顶层模块名称:设计文件中top module的模块名称,软件默认跟工程名称相同。
{{ :qu14.png?500 |}}
(4)工程类型:选择Empty project,点击Next。
{{ :qu15.png?500 |}}
(5)添加文件,如果已有设计文件,在当前页面选择并添加,点击Next。
{{ :qu16.png?500 |}}
(6)器件选择:根据开发平台使用的FPGA选择对应器件(10M02SCM153I7G/10M08SCM153C8G),点击Next。
{{ :qu17.png?500 |}}
(7)EDA工具选择:选择第三方EDA工具:如果有需要可以选择第三方的综合或仿真工具(第三方工具需要另外安装并设置启动路径),这里我们选择使用modelsim工具仿真,点击Next。
{{ :qu18.png?500 |}}
(8)工程设置确认:确认工程相应的设置,如需调整点击Back返回修改,若确认设置,点击Finish。
{{ :qu19.png?500 |}}
(9)工程创建完毕,Quartus软件自动进入开发界面,如下:
{{ :qu20.png?700 |}}
====1.2添加设计文件====
(1)选择File→New 或 点击工具栏中的New按钮,选择Verilog HDL File文件类型,点击OK,Quartus软件会新建并打开Verilog文件。
{{ :qu21.png?700 |}}
(2)在新建的Verilog文件中进行Verilog HDL代码编写、保存,文件名为LED_shining.v,如下图所示,程序源码如下。
{{ :qu22.png?700 |}}
程序源码
// ********************************************************************
// >>>>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<
// ********************************************************************
// File name : LED_shining.v
// Module name : LED_shining
// Author : STEP
// Description : LED_shining
// Web : www.stepfpga.com
//
// --------------------------------------------------------------------
// Code Revision History :
// --------------------------------------------------------------------
// Version: |Mod. Date: |Changes Made:
// V1.0 |2017/03/02 |Initial ver
// --------------------------------------------------------------------
// Module Function:闪烁LED
module LED_shining
(
input clk_in, //clk_in = 12mhz
input rst_n_in, //rst_n_in, active low
output led1, //led1 output
output led2 //led2 output
);
parameter CLK_DIV_PERIOD = 12_000_000;
reg clk_div=0;
//wire led1,led2;
assign led1 = clk_div;
assign led2 = ~clk_div;
//clk_div = clk_in/CLK_DIV_PERIOD
reg[24:0] cnt=0;
always@(posedge clk_in or negedge rst_n_in) begin
if(!rst_n_in) begin
cnt<=0;
clk_div<=0;
end else begin
if(cnt==(CLK_DIV_PERIOD-1)) cnt <= 0;
else cnt <= cnt + 1'b1;
if(cnt<(CLK_DIV_PERIOD>>1)) clk_div <= 0;
else clk_div <= 1'b1;
end
end
endmodule
\\
\\
(3)选择菜单栏中Processing→Start→Start Analysis & Synthesis选项 或 工具栏中Start Analysis & Synthesis按钮,如下图所示。
{{ :qu23.png?700 |}}
(4)Quartus软件会完成分析综合,若设计没有问题,综合Tasks栏中Analysis & Synthesis会变成绿色,同时左侧出现绿色对勾。可以选择Tools→Netlist Viewers→RTL Viewer查看电路。
{{ :qu24.png?700 |}}
(5)RTL电路图如下:
{{ :qu25.png?700 |}}
====1.3管脚约束====
(1)选择Assignments→Device打开器件配置页面,然后点击页面中的Device and Pin Options…选项打开器件和管脚选项页面。
{{ :qu26.png?700 |}}
(2)在Unused Pins选项中配置Reserve all unused pins为 As input tri-stated状态。
{{ :qu27.png?700 |}}
(3)在Voltage选项中配置Default I/O standard为 3.3-V LVTTL状态。然后OK回到设计界面。
{{ :qu28.png?700 |}}
(4)选择菜单栏中Assignments→Pin planner选项 或 工具栏中Pin planner图标,进入管脚分配界面。
{{ :qu29.png?700 |}}
(5)在Pin Planner页面中将所有端口分配对应的FPGA管脚,如下图,然后关闭(自动保存)。
{{ :qu30.png?700 |}}
(6)选择菜单栏中Processing→Start Compilation选项 或 工具栏中Start Compilation按钮,开始所有编译,等待Tasks列表中所有选项完成,如下图。
{{ :qu31.png?700 |}}
====1.4 FPGA加载====
(1)使用micro-usb线将STEP-MAX10二代开发平台连接至电脑USB接口,选择菜单栏中Tools→Programmer选项 或 工具栏中Programmer按钮,进入烧录界面。
{{ :qu32.png?700 |}}
(2)烧录界面如下,确认硬件驱动为USB-Blaster[USB-0],选择Add File添加工程输出文件中pof格式文件,勾选Program列和Verify列,点击Start按钮进行FPGA加载。
{{ :qu33.png?700 |}}
(3)FPGA加载完成,界面中Progress状态显示100%(Successful)。观察开发板现象。
{{ :qu34.png?700 |}}
=====2. 仿真工具ModelSIM=====
(1)首先提前准备测试文件(Textbench):LED_shining_tb.v,测试文件源码如下:
// ********************************************************************
// >>>>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<
// ********************************************************************
// File name : LED_shining_tb.v
// Module name : LED_shining_tb
// Author : STEP
// Description : LED_shining的测试文件
// Web : www.stepfpga.com
//
// --------------------------------------------------------------------
// Code Revision History :
// --------------------------------------------------------------------
// Version: |Mod. Date: |Changes Made:
// V1.0 |2017/03/02 |Initial ver
// --------------------------------------------------------------------
// Module Function:LED_shining的测试文件
`timescale 1ns / 100ps
module LED_shining_tb;
parameter CLK_PERIOD = 40;
reg sys_clk;
initial
sys_clk = 1'b0;
always
sys_clk = #(CLK_PERIOD/2) ~sys_clk;
reg sys_rst_n; //active low
initial
begin
sys_rst_n = 1'b0;
#200;
sys_rst_n = 1'b1;
end
wire led1,led2;
LED_shining #
(
.CLK_DIV_PERIOD(4'd12)
)
LED_shining_uut
(
.clk_in(sys_clk), //clk_in = 12mhz
.rst_n_in(sys_rst_n), //rst_n_in, active low
.led1(led1), //led1 output
.led2(led2) //led2 output
);
endmodule
\\
(2)选择菜单栏Assignments→Settings 或 工具栏中Settings按钮,进入设置界面。
{{ :qu35.png?700 |}}
(3)选择菜单栏Simulation选项,单选Compile test bench,点击Test Benches,在弹出的对话框中点击New,填写Test bench name,按照目录添加测试文件,如下图标识顺序,最后点击OK回到设计界面。
{{ :qu36.png?700 |}}
(4)选择菜单栏Tools→Run Simulation Tool→RTL Simulation选项 或 工具栏中RTL Simulation按钮,Quartus软件会自动启动Modelsim软件。
{{ :qu37.png?700 |}}
(5)Modelsim软件启动后自动完成代码编译,界面如下图。
{{ :qu38.png?700 |}}
(6)选择需要观察波形的信号,点击右键,在弹出的右键菜单中选择Add Wave,这样就将对应信号添加至Wave窗口。
{{ :qu39.png?700 |}}
(7)弹出的Wave窗口如下,选择工具栏中Restart按钮,在弹出的Restart窗口点击OK,复位仿真Wave窗口。
{{ :qu40.png?700 |}}
(8)修改工具栏中仿真时间,点击工具栏中Run按钮,进行仿真,仿真波形如下,仿真完成。
{{ :qu41.png?700 |}}
====3.STEP-MAX10入门教程====
到这里我们了解了用Diamond软件进行开发的完整流程。接下来我们开始[[STEP-MAX10入门教程]]一步一步进入可编程逻辑设计。