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

本文详细介绍了一种基于QuartusII与Supra的FPGA设计流程,包括软件安装、工程建立、管脚分配、工程转换及编译,并演示了如何进行器件烧写及验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、预装软件介绍

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

  • 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 files

Total 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 Statistics
 Total      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   : 0
 Total Lonely   Register : 0
 Total LUT-FF   Pairs    : 0
 Total Register Packings : 0
 Registers with synchronous    reset : 0
 Registers with asynchronous   reset : 0
 Registers 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 Statistics
 Total  Logic    Tiles   : 0/685 (0.0%)
 Total  Valid    Nets    : 0 (0+0)
 Total  Valid    Fanouts : 0 (0+0)
 Total  Tile     Fanouts : 0
 Tile   Zip      Fanins  : 0 (-1:-1)
 Tile   Zip      Fanouts : 0 (-1:-1)
 Total  Ignored  Nets    : 0
 Total  Valid    Blocks  : 0 (0/0)
 Total  Ignored  Blocks  : 1
 Total  Zip Complexities : 0/0 0.00/0.00
 Avg    Zip   Bottleneck : nan nan
 Avg    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 report
  User 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 Statistics
 Total Routing Nets : 0
 Logic       Slices : 0/10960 (0.0%)


*** Post Routing Timing Report ***
=== User constraints ===
=== Auto constraints ===
Coverage report
  User 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 2021

Total 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
AS1
PS0
JTAG0/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 disconnected

Total 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:当改动引脚绑定后。

其他

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


参考

1、 支持GIF格式的动画显示; 2、 扫描频率高,在极限控制面积下帧频大于120Hz,画面稳定性好,无闪烁; 3、 单卡最大可控单色2048×1024点 ,双色1024×512点,可多卡级联同步显示; 4、 支持RS485和TCP/IP联网功能,数据处理实时性强,可前台显示,后台通讯; 5、 板卡内带16M FLASH,掉电内容不丢失,可选配CF卡,内带16/24点阵字库; 6、 支持播放图片BMP、JPG、JPEG等,文本TXT、RTF等,表格EXCEL等; 7、 支持多窗口多区域显示,可任意开设64个以上的逻辑区域,独立播放显示; 8、 支持正倒计时、安全天数、值班表、农历、世界时钟等数字时钟,特有模拟时钟等功能; 9、 特技功能丰富,超过30种显示方式,每幅都可以单独做特技,花样齐全; 10. 支持10级亮度调节,可以通过软件设置,也可以增配亮度传感器自动设置; 11、支持温度、湿度、遥控及各种工业传感接口等,外扩展功能丰富; 12、支持RS232/RS485、TCP/IP、可增配光纤收发器、无线GPRS传输模块等; 13、支持100种以上的硬件扫描接口,几乎兼容国内所有的显示扫描接口; 14、具有二次开发性,可根据用户要求提供不同的解决方案,免费提供接口协议; 15、设置软件和播放软件独立使用,界面友好,系统软件可在线远程升级; 3、技术指标: 工作电压:4.5V ~ 5.5V,具有反接、过压、短路保护; 额定功耗:3W; 工作频率:60MHZ; 扫描方式:静态、1/2、1/4、1/8、1/16扫描; 工作温度:-40℃ - 60℃; 工作湿度:0% - 95%RH。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ReCclay

如果觉得不错,不妨请我喝杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值