【LED灯屏控制器】AG10K 烧录程序(2)
一、预装软件介绍
对于我的电脑,需要预装:
- 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
”后Supra
在AGM
的工程目录中自动生成所需文件。
正确运行后会生成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
目录下,包括 setup
和 hold
时序的 rpt.gz
压缩文件中。
3.6、器件烧写
- 1、选择菜单: “
Tools -> Program
”,打开Program
选项卡,下图所示:
或者点击下图所示按钮打开
Program
选项卡:
- 2、连接
USB-Blaster
到AG10K
评估板的JTAG
接口,如下图所示:
- 3、选择拨码开关MSEL1到合适的档位
AG10K
配置说明:
AG10K
配置方式支持 JTAG
, AS(Master)
和 PS(Slave)
方式, 可通过 MSEL[2..0]
选择。其中 MSEL2
和 MSEL0
已在封装内接到 GND
,仅需把外部管脚 MSEL1
按照下表设置,选择不同配置模式。 AS
方式也是通过 JTAG
口直接烧写配置 FLASH
。
配置方式 | MSEL1 |
---|---|
AS | 1 |
PS | 0 |
JTAG | 0/1 |
MSEL1
部分原理图如下所示:
①、MSEL1
接至GND
,即PS
方式,下载程序到FPGA
的SRAM
里,掉电即丢失!
②、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
中直接编译即可。然后在 Supra
中 Compile
界面进行最后编译。
3.8.2、烧写文件类型
<design>_sram. prg
文件为片内sram
写入,通过JTAG
烧写, 掉电即失效,可用于设计调试;<design>_master.prg
文件为Master(AS)
配置方式下,通过JTAG
烧写FLASH
的文件;<design>_master.bin
为Master(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)相关推荐
- c51单片机led奇数偶数亮_单片机LED灯花式闪烁电路图及程序
单片机LED灯花式闪烁电路图及程序 在点亮LED灯的程序中我们知道开发板上的LED灯是接到高电平的,如果单片机引脚输出电平,LED导通发亮.如果单片机引脚输出高电平,LED截止熄灭.知道这个原理后我们 ...
- 51单片机入门:LED灯闪烁(原理图+仿真+程序)
目录 硬件电路设计 仿真电路设计 程序设计 仿真实现 在用51单片机点亮一个LED小灯的基础上,下面尝试将一个LED灯闪烁起来. 硬件电路设计 结合51单片机最小系统的知识,利用AD19画好最小系统电 ...
- 调节小灯亮度的c语言程序,需要一个用按键控制一个LED灯亮度的C语言程序
匿名用户 1级 2012-02-21 回答 /**52系列单片机,晶振12MHz,P1.0输出100Hz方波(即周期10ms),方波由T0定时器产生 P1.3接按键 K1,每按一次按键,方波占空比改变 ...
- STM32学习 3:GPIO管脚配置与第一个STM32实验:LED灯闪烁
STM32学习 3:GPIO管脚配置与第一个STM32实验:LED灯闪烁 1,GPIO管脚简介与配置 1.1GPIO框图 1.2GPIO不同模式 1.3 GPIO寄存器 1.4 GPIO库函数配置 2 ...
- 自动感光调节LED灯亮度C语言程序,单片机PWM调节LED灯亮度
刚搞完飞思卡尔智能车,昨天我一起做车的搭档跑来跟我说魏老师(我们系的前主任,不知道他们怎么认识的....)叫他帮忙做个可通过无线遥控调节LED灯亮度的设计方案,问我有没有兴趣做做,主要是魏老师也是受他 ...
- Linux并发与竞争实验(一次只允许一个应用程序操作LED灯)
目录 原子操作实验 实验程序编写 运行测试(运行多个APP抢占资源) 自旋锁实验 实验程序编写 运行测试 信号量实验 实验程序编写 运行测试(第二条命令因为获取信号量失败而进入休眠状态) 互斥体实验( ...
- pmw调光c语言程序,51单片机led灯渐变PWM调光(渐亮渐灭)C语言和汇编源程序
; PWM 控制 LED 灯渐亮渐灭程序 ; 适用 ME500 开发系统 ; 晶振为11.0592M ; 利用定时器控制产生占空比可变的 PWM 波 ; 按K1,PWM值增加,则占空比减小,LED 灯 ...
- 按下亮 松开灭 c语言程序,MSP430G2452按键控制P1.0口LED灯亮灭
MSP430G2452按键(P1.3)控制P1.0(LED)灯亮灭C语言程序,P1.3为带上拉电阻的输入状态,P1.0为输出状态,当P1.3按下,P1.0口LED灯则亮,松开按键,LED灯则熄灭,无限 ...
- 点亮led灯的个数_16个LED灯循环点亮的小程序(代码)
今天又小伙伴又来考我了.问我16个LED灯循环点亮怎么变成.我也动了下手,将手里的8个LED灯循环点亮的小程序进行了修改,就完成了16个LED灯循环点亮的小实验.那么下面给大家分享下吧! 其实16个L ...
- 点亮LED灯(STC89C52RC芯片)
点亮第一个LED灯 1.看懂局部的led电路原理图,在看懂原理图的基础之上,熟悉那个接口比如 P2几 熟悉它的底层电路逻辑. 2.使用keil5一定要新建一个文件夹 在该文件里面 写程序 防止散 ...
最新文章
- Python学习之路7-函数
- 如果你也时常想要上进,我们可以相互鼓励,相互促进
- Android的Framework分析---4硬件抽象HAL
- 二十四、redis发布订阅
- HBase中Bloomfilter类型的设置及使用的理解
- 网络爬虫--5.urllib库的基本使用(1)
- 全球撤稿排行榜前10出炉:第一名多到想象不到
- nginx子目录301重定向到其他域名URL
- 动物行为检测计算机视觉_基于红外热成像和计算机视觉的动物行为研究系统便是其中一例...
- shell等待特定进程pid退出的方法
- Word多级标题测试-去掉标题多级编号
- jsonrpc php使用,Json-RPC 的 PHP 扩展 php-JsonRPC
- WSUS 服务器 更新补丁 命令
- 概率论笔记3.1二维随机变量及其函数分布
- 数字图像处理——第三章 灰度变换与空间滤波
- python求15的因数_python学习第15期
- linphone 智能带宽分配
- GridPanel中表头全选框的小问题
- 期末考各项低控掠过!!!
- console不止console.log
热门文章
- win10开始菜单打不开_win10开始菜单没反应的解决方法教程
- hibernate的关联映射 (员工管理)
- 游戏中学会写代码:这些编程学习网站不容错过
- WiFi大师小程序3.0.9独立版源码
- [iOS]手把手教你实现微信小视频
- 浅识Flutter 基本组件之TextField组件 输入框controller属性
- 高数定理、法则(持续添加)
- 电脑提醒没有权限在此位置保存文件怎么办?
- 解决eWebEditor上传图片提示:请选择一个有效的文件,支持的格式有(GIF|JPG|JPEG|BMP|PNG)!
- OSChina 周一乱弹 —— 带你装逼带你飞~