一、预装软件介绍

对于我的电脑,需要预装:

  • Quartus II 13.0 版本(64位)

    • 安装参考《Quartus II 13.0安装指导书.pdf》
  • Cyclone IV 器件库(AG10KSDE176 对标 EP4CE10F17C8【属于Cyclone IV 系列】)
    • 安装参考《Quartus II 13.0安装指导书.pdf》
  • Supra-2020.07.b0-35f3f297-win64-all
    • 安装参考下文

二、Supra安装

安装包见链接:http://pan.baidu.com/s/1eQxc6XG 提取密码—q59e


选择适合自己系统的版本进行解压即可,这个软件是免安装的!

三、软件开发流程(Compatible 模式)

Compatible 模式是Supra中的一个可选模式,可选模式一共有三个,分别是:COmpatible、Synplicity、Native。

3.1、使用 Qurtus II 13.0 创建工程

参考小梅哥《02_【学习教材】FPGA系统设计与验证实战指南_V2.6.pdf》的2.2.1和2.2.2小节。

Quartus II 13.0 基于 Cyclone IV EP4CE10F17 完成原始设计。

注意:创建完工程并设计好源文件后,需要进行一次全编译!特别提醒,先不要进行管脚分配

这里我为工程名字取名为led,工程目录结构如下图所示。

我的rtl设计文件led.v内容如下:

功能:持续点亮LED,该LED低电平点亮!

module led(output OUT
);assign OUT = 1'b0; endmodule

3.2、管脚分配

新建一个文本格式的管脚分配文件,命名为<design>.ve(例如:pin.ve),并将其存放在与Quartus工程同级的目录下,如下图所示。

编辑 ve 文件加入 FPGA 的 IO 管脚绑定,管脚名称参考MANUAL_AG10KSDE176.pdf中的管脚说明表格ve 文件格式如下(管脚设计名称+空格+封装管脚名称):

//网表参考格式如下rst PIN_89
clk PIN_23
led[0] PIN_157
led[1] PIN_158
……
my_SDRAM_CS SDRAM_CS
my_SDRAM_CLK SDRAM_CLK
my_SDRAM_A0 SDRAM_A0
……

我的pin.ve文件内容如下:

OUT  PIN_157

对应原理图,为图中的第一个LED,LED原理图如下图所示:

Supra 会在后面的编译中按照 ve 文件分配到 176 封装的 AG10K 具体管脚。 如原 Quartus II 13.0 工程中有管脚分配信息,需先删除再执行 TCL

3.3、使用 Supra 转换(Migrate)工程

  • 1、首先新建一名为led_supra的目录,作为 AG10K 的项目目录,该目录与Quartus工程目录同级!层级如下图所示:

  • 2、接着打开 Supra,新建工程(File->Project->New Project),设置工程目录和工程名称。

  • 3、选择菜单 ”Tools -> Migrate”,或者点击下图所示按钮,进行工程转换!

  • 4、在 Migrate 界面依次填入信息为:

    • 目标运行目录<run_dir>AGM 工程目录)
    • 原始项目目录<from_dir>(需要精确到.qpf所在文件夹)
    • 选择设计名称(应自动<from_dir>中找到,请点选)
    • 选择 AGM 器件型号:AG10KSDE176
    • 非管脚兼容器件需要添加 VE 文件,即3.2节创建的pin.ve文件
    • (了解)非兼容 IP,通过 Supra 产生 IP 文件后再添加
    • Backward Compatible 选项,如果使用老版本 Quartus II(无 Cyclone IV device)可以选上

填入信息参考,如下图所示:

注意,若窗口过小会隐藏掉一些信息,这时滚轮下拨即可!

  • 5、接着点击“Next”按钮,界面如下图所示:
  • 若未创建 AGM 的工程目录,可根据输入目录的名称自动产生,选择“Yes”后 SupraAGM 的工程目录中自动生成所需文件。
    正确运行后会生成 af_prepare.tcl 等文件。


log 信息如下:

af.exe -B --setup --mode QUARTUS --design led --device AG10KSDE176 --migrate E:/AlterProjects/led/prj --ve E:/AlterProjects/pin.ve -X "set DEVICE_FAMILY 1"Total IO  : 432
Total Pin : 187/12
Top array is built.
Loading architect libraries...
## CPU time: 0:0:0, REAL time: 0:0:0
## Memory Usage: 43MB (43MB)
Warn: Can not find ASF file ./led.asf, create a empty one.
Info: Can not find ASF file ./led.pre.asf, create a empty one.
Info: Can not find ASF file ./led.post.asf, create a empty one.Setup done...
Next, compile with quartus using one of following 2 approaches:1) Command line base, run 'quartus_sh -t af_quartus.tcl'2) GUI base, start quartus GUI, open project led,select Tools->Tcl Scripts..., load af_quartus.tcl and run
Then, run 'af_run' to generate led bit-stream filesTotal 0 fatals, 0 errors, 1 warnings, 2 infos.Setup migration project from E:/AlterProjects/led/prj done with code 0

3.4、加载 af_quartus.tcl 文件,综合网表文件

使用 Qurtus II 13.0 打开 supra 工程中的 led.qpf。选择菜单: “Tools -> Tcl Scripts...”,调用工程里的 af_quartus.tcl,运行点击“Run”按钮。

运行 af_prepare.tcl 脚本文件,会把 ve 的内容导入到 EP4CE10 对应的管脚分配。



Qurtus II 13.0 成功执行 Tcl 后,会综合出 Supra 需要的网表文件(vo)。

接着退出工程,回到 Supra 软件。

点击“Next”按钮。

3.5、Supra工程编译

如下图所示,点击”Finish”按钮, Supra 开始编译工程,可在 Console 界面查看编译信息

耐心等待 x min…

log 信息如下:

af.exe -B --batch --mode QUARTUS -X "set QUARTUS_SDC true" -X "set FITTING timing_more" -X "set FITTER hybrid" -X "set EFFORT highest" -X "set HOLDX default" -X "set SKEW basic"Mon Mar 01 23:01:01 2021
Using pre-ASF file led.pre.asf.
Total IO  : 432
Total Pin : 187/12
Top array is built.
Loading architect libraries...
## CPU time: 0:0:0, REAL time: 0:0:0
## Memory Usage: 43MB (43MB)
Loading route table...
## CPU time: 0:0:12, REAL time: 0:0:13
## Memory Usage: 425MB (425MB)
Using design verilog file E:/AlterProjects/led/prj/simulation/modelsim/led.vo.
Preparing design...
## CPU time: 0:0:0, REAL time: 0:0:0
## Memory Usage: 425MB (425MB)
Pseudo pack design...
Using location file E:/AlterProjects/pin.ve
Packing StatisticsTotal      Logics : 0/10960 (  0%)Total        LUTs : 0/10960 (  0%)Total   Registers : 0/10960 (  0%)Total  Block Rams : 0/   46 (  0%)Total Multipliers : 0/   23 (  0%)Total        PLLs : 0/    2 (  0%)Total        Pins : 1/  187 (  0%)Global    Signals : 0/   10 (  0%)Total Lonely   Datain   : 0Total Lonely   Register : 0Total LUT-FF   Pairs    : 0Total Register Packings : 0Registers with synchronous    reset : 0Registers with asynchronous   reset : 0Registers with sync and async reset : 0
## CPU time: 0:0:0, REAL time: 0:0:0
## Memory Usage: 425MB (425MB)
Filter verilog...
## CPU time: 0:0:0, REAL time: 0:0:0
## Memory Usage: 425MB (425MB)
Read DB design...
## CPU time: 0:0:0, REAL time: 0:0:1
## Memory Usage: 433MB (433MB)
Process design...
## CPU time: 0:0:0, REAL time: 0:0:0
## Memory Usage: 434MB (434MB)
Using design SDC file ./led.sdc.
Using AQF file ./alta_db/alta.aqf.
Using ASF file led.asf.
Placement StatisticsTotal  Logic    Tiles   : 0/685 (0.0%)Total  Valid    Nets    : 0 (0+0)Total  Valid    Fanouts : 0 (0+0)Total  Tile     Fanouts : 0Tile   Zip      Fanins  : 0 (-1:-1)Tile   Zip      Fanouts : 0 (-1:-1)Total  Ignored  Nets    : 0Total  Valid    Blocks  : 0 (0/0)Total  Ignored  Blocks  : 1Total  Zip Complexities : 0/0 0.00/0.00Avg    Zip   Bottleneck : nan nanAvg    Net   Bottleneck : nan nan
Total wire cost after placement: 0:0:0(0:0) 0(0)+0(0)+0 0(0)+0*** Post Placement Timing Report ***
=== User constraints ===
=== Auto constraints ===
Coverage reportUser constraints covered 0 connections out of 0 total, coverage: 100.0%Auto constraints covered 0 connections out of 0 total, coverage: 100.0%
*** End Timing Report ***route_design -dump ./alta_db/route.tx -replace ./alta_db/replace.tx
Route Design StatisticsTotal Routing Nets : 0Logic       Slices : 0/10960 (0.0%)*** Post Routing Timing Report ***
=== User constraints ===
=== Auto constraints ===
Coverage reportUser constraints covered 0 connections out of 0 total, coverage: 100.0%Auto constraints covered 0 connections out of 0 total, coverage: 100.0%
*** End Timing Report ***Mon Mar 01 23:01:24 2021
Using post-ASF file led.post.asf.
Mon Mar 01 23:01:27 2021Total 0 fatals, 0 errors, 0 warnings, 0 infos.Compile design led done with code 0

编译成功后, Supra 生成用于器件烧写的led.prg 等烧写文件。

转换和编译时产生的 log 文件,保存在工程的 alta_logs 目录下;编译的时序报告,保存在 alta_db 目录下,包括 setuphold 时序的 rpt.gz 压缩文件中。

3.6、器件烧写

  • 1、选择菜单: “Tools -> Program”,打开Program选项卡,下图所示:

或者点击下图所示按钮打开Program选项卡:

  • 2、连接 USB-BlasterAG10K 评估板的 JTAG 接口,如下图所示:

  • 3、选择拨码开关MSEL1到合适的档位

AG10K 配置说明:

AG10K 配置方式支持 JTAGAS(Master)PS(Slave) 方式, 可通过 MSEL[2..0]选择。其中 MSEL2MSEL0 已在封装内接到 GND仅需把外部管脚 MSEL1 按照下表设置,选择不同配置模式AS 方式也是通过 JTAG 口直接烧写配置 FLASH

配置方式 MSEL1
AS 1
PS 0
JTAG 0/1

MSEL1部分原理图如下所示:


①、MSEL1 接至GND,即PS方式,下载程序到FPGASRAM里,掉电即丢失!
②、MSEL1 接至GND,即AS方式,下载程序到FLASH中,FPGA进行主动配置,掉电仍可保存程序!

这里PS AS 的称呼准确吗???

这里我选择AS方式,即MSEL1 接至GND

  • 4、接着选择要烧写的程序,然后点击Program

①、AS方式对应的烧写程序名为:led_master.prg
②、PS方式对应的烧写程序名为:led_sram.prg

这里我们当然选择led_master.prg了!

log 信息如下:

af.exe -B -X "set blaster_id 0" -X "source -progress 1000 E:/AlterProjects/led_supra/led_master.prg"Usb driver connected on device 0
JTAG device ID: 0x01000001
...1000
...2000
...3000
...4000
...5000
...6000
...7000
Usb driver disconnectedTotal 0 fatals, 0 errors, 0 warnings, 0 infos.Program device with led_master.prg done with code 0

3.7、实验现象验证

如下图所示LED常亮!

3.8、补充内容

3.8.1、修改源设计后

如需修改原设计,由于 af_prepare.tcl 已把管脚设置改好, 不用重新执行 tcl, 在 Qurtus II 13.0 中直接编译即可。然后在 SupraCompile 界面进行最后编译。

3.8.2、烧写文件类型

  • <design>_sram. prg 文件为片内 sram 写入,通过 JTAG 烧写, 掉电即失效,可用于设计调试;
  • <design>_master.prg 文件为 Master(AS)配置方式下,通过 JTAG 烧写 FLASH 的文件;
  • <design>_master.binMaster(AS)配置方式下, FLASH 的通用烧写文件;
  • <design>.bin 或 rbf 文件为 Slave(PS)配置方式所需文件, rbf 文件的字节高低位反向。

Q & A

Q:改动什么需要重新TCL?

  • A:当改动引脚绑定后。

其他


参考

  • AGM-FPGA-spura软件使用手册.pdf
  • AG10K_guide.pdf
  • Quartus II 13.0安装指导书.pdf
  • AG10K_E176_SDRAM_PCB.pdf【即 AG10K 评估板原理图】
  • MANUAL_AG10KSDE176.pdf
  • USB Blaster使用指南
  • FPGA在AS模式下,程序下载成功,重启后配置失败
  • FPGA的AS模式下载成功,不能自动配置运行!

【LED灯屏控制器】AG10K 烧录程序(2)相关推荐

  1. c51单片机led奇数偶数亮_单片机LED灯花式闪烁电路图及程序

    单片机LED灯花式闪烁电路图及程序 在点亮LED灯的程序中我们知道开发板上的LED灯是接到高电平的,如果单片机引脚输出电平,LED导通发亮.如果单片机引脚输出高电平,LED截止熄灭.知道这个原理后我们 ...

  2. 51单片机入门:LED灯闪烁(原理图+仿真+程序)

    目录 硬件电路设计 仿真电路设计 程序设计 仿真实现 在用51单片机点亮一个LED小灯的基础上,下面尝试将一个LED灯闪烁起来. 硬件电路设计 结合51单片机最小系统的知识,利用AD19画好最小系统电 ...

  3. 调节小灯亮度的c语言程序,需要一个用按键控制一个LED灯亮度的C语言程序

    匿名用户 1级 2012-02-21 回答 /**52系列单片机,晶振12MHz,P1.0输出100Hz方波(即周期10ms),方波由T0定时器产生 P1.3接按键 K1,每按一次按键,方波占空比改变 ...

  4. STM32学习 3:GPIO管脚配置与第一个STM32实验:LED灯闪烁

    STM32学习 3:GPIO管脚配置与第一个STM32实验:LED灯闪烁 1,GPIO管脚简介与配置 1.1GPIO框图 1.2GPIO不同模式 1.3 GPIO寄存器 1.4 GPIO库函数配置 2 ...

  5. 自动感光调节LED灯亮度C语言程序,单片机PWM调节LED灯亮度

    刚搞完飞思卡尔智能车,昨天我一起做车的搭档跑来跟我说魏老师(我们系的前主任,不知道他们怎么认识的....)叫他帮忙做个可通过无线遥控调节LED灯亮度的设计方案,问我有没有兴趣做做,主要是魏老师也是受他 ...

  6. Linux并发与竞争实验(一次只允许一个应用程序操作LED灯)

    目录 原子操作实验 实验程序编写 运行测试(运行多个APP抢占资源) 自旋锁实验 实验程序编写 运行测试 信号量实验 实验程序编写 运行测试(第二条命令因为获取信号量失败而进入休眠状态) 互斥体实验( ...

  7. pmw调光c语言程序,51单片机led灯渐变PWM调光(渐亮渐灭)C语言和汇编源程序

    ; PWM 控制 LED 灯渐亮渐灭程序 ; 适用 ME500 开发系统 ; 晶振为11.0592M ; 利用定时器控制产生占空比可变的 PWM 波 ; 按K1,PWM值增加,则占空比减小,LED 灯 ...

  8. 按下亮 松开灭 c语言程序,MSP430G2452按键控制P1.0口LED灯亮灭

    MSP430G2452按键(P1.3)控制P1.0(LED)灯亮灭C语言程序,P1.3为带上拉电阻的输入状态,P1.0为输出状态,当P1.3按下,P1.0口LED灯则亮,松开按键,LED灯则熄灭,无限 ...

  9. 点亮led灯的个数_16个LED灯循环点亮的小程序(代码)

    今天又小伙伴又来考我了.问我16个LED灯循环点亮怎么变成.我也动了下手,将手里的8个LED灯循环点亮的小程序进行了修改,就完成了16个LED灯循环点亮的小实验.那么下面给大家分享下吧! 其实16个L ...

  10. 点亮LED灯(STC89C52RC芯片)

    点亮第一个LED灯 1.看懂局部的led电路原理图,在看懂原理图的基础之上,熟悉那个接口比如  P2几 熟悉它的底层电路逻辑. 2.使用keil5一定要新建一个文件夹  在该文件里面  写程序 防止散 ...

最新文章

  1. Python学习之路7-函数
  2. 如果你也时常想要上进,我们可以相互鼓励,相互促进
  3. Android的Framework分析---4硬件抽象HAL
  4. 二十四、redis发布订阅
  5. HBase中Bloomfilter类型的设置及使用的理解
  6. 网络爬虫--5.urllib库的基本使用(1)
  7. 全球撤稿排行榜前10出炉:第一名多到想象不到
  8. nginx子目录301重定向到其他域名URL
  9. 动物行为检测计算机视觉_基于红外热成像和计算机视觉的动物行为研究系统便是其中一例...
  10. shell等待特定进程pid退出的方法
  11. Word多级标题测试-去掉标题多级编号
  12. jsonrpc php使用,Json-RPC 的 PHP 扩展 php-JsonRPC
  13. WSUS 服务器 更新补丁 命令
  14. 概率论笔记3.1二维随机变量及其函数分布
  15. 数字图像处理——第三章 灰度变换与空间滤波
  16. python求15的因数_python学习第15期
  17. linphone 智能带宽分配
  18. GridPanel中表头全选框的小问题
  19. 期末考各项低控掠过!!!
  20. console不止console.log

热门文章

  1. win10开始菜单打不开_win10开始菜单没反应的解决方法教程
  2. hibernate的关联映射 (员工管理)
  3. 游戏中学会写代码:这些编程学习网站不容错过
  4. WiFi大师小程序3.0.9独立版源码
  5. [iOS]手把手教你实现微信小视频
  6. 浅识Flutter 基本组件之TextField组件 输入框controller属性
  7. 高数定理、法则(持续添加)
  8. 电脑提醒没有权限在此位置保存文件怎么办?
  9. 解决eWebEditor上传图片提示:请选择一个有效的文件,支持的格式有(GIF|JPG|JPEG|BMP|PNG)!
  10. OSChina 周一乱弹 —— 带你装逼带你飞~