【紫光同创国产FPGA教程】——FPGA&CPLD的下载与固化

本原创教程由深圳市小眼睛科技有限公司创作,版权归本公司所有,如需转载,需授权并注明出处
 

一、 FPGA&CPLD 的下载

(1)生成位流文件(.sbit)后,可以把.sbit 文件下载到 FPGA 或 CPLD 中,首先将 JTAG 下载器与 PCB 板连接并上电,点击菜单栏中【tools】 下的【Configuration】。

 Configuration

(2)在弹出的界面中单击【Scan Devive】。

(3)在扫描到器件后,会弹出加载.sbit 文件界面,按要求添加即可。  

(4)添加好.sbit 文件后,选中器件并右击,在弹出的菜单中选择【Program】。

(5)信息区:显示“COMMAND[Program] execute successfully..”即已完成 FPGA 或 CPLD 的下载。

二、FPGA 的 Flash 固化

(1)FPGA 的 flash 固化需要先将.sbit 文件转换成 flash 的.sfc 文件。点击菜单栏的 【Operations】选择【Convert File】。

 (2)在弹出的界面中,根据使用的 flash 型号选择厂家和设备型号,选择要转换的.sbit 文件,自动显示.sfc 文件位置,点击 OK。

 (3)转换成功后,显示如下界面,点击 0K 退出:

 (4)选中器件右击,选择下拉菜单中的【Scan Outer Flash】

 (5)在弹出的界面中选择.sfc 文件,点击【Open】

 (6)右击【Outer Flash】,在下拉菜单中点击【Program…】

 (7)进度条消失并出现下图,至此 FPGA 的 Flash 固化完成。

三、 CPLD 的 Flash 固化

Compa 系列 CPLD 器件内置 eFlash,勿需外挂 Flash。首先按照下图设置 CPLD 器件的启动 方式【Master Auto Mode(from embed flash)】,重新生成新的位流文件.sbit。

 (2)按照“1.FPGA&CPLD 的下载”流程进入到下载界面,选择新的.sbit 文件,右击器件 中的【Flash】,在下拉菜单中选择【Program】,等待进度条消失出现“[Verify Eflash]execute successfully…”,自此 CPLD 的 eFlash 固化完成;

### FPGA远程下载固化方法 #### 1. 使用JLink调试器进行FPGA程序下载 对于多种品牌如Xilinx、Altera、Lattice等的FPGA,可以通过JLink调试器配合OpenOCD工具完成程序加载工作[^1]。此过程涉及连接硬件并启动相应的软件环境来执行命令序列以实现目标。 ```bash openocd -f interface/jlink.cfg -f target/<your_fpga>.cfg ``` 上述指令用于初始化配置文件路径下的特定接口和目标芯片设置,在实际应用中需替换`<your_fpga>`为具体的型号名称。 #### 2. 构建基于FPGA的远程升级系统框架 此类系统的建立依赖于网络通信协议栈的设计及其底层硬件资源的有效交互机制[^2]。通常情况下,会涉及到以下几个方面: - **数据传输层**:负责处理来自远端服务器的数据流; - **控制逻辑单元**:解析接收到的信息包,并据此作出相应动作; - **存储管理模块**:确保新版本固件能够安全可靠地保存至内部或外部非易失性介质内; #### 3. 应用QuickBoot技术加速FPGA重配置流程 为了提高效率降低延迟时间,采用专门针对快速重启优化过的算法——即所谓的“QuickBoot”,它允许用户自定义关键开关状态从而影响整个系统的响应速度及性能表现[^3]。 ```c // C代码片段展示如何调用API函数更改CSW(Critical Switch World) void set_csw(bool enable){ if(enable){ // 设置使能位... }else{ // 清除使能位... } } ``` 这段伪代码展示了改变CSW的方法之一,具体实现细节取决于所使用的开发平台和技术文档说明。 #### 4. 考虑时钟频率对FPGA远程更新的影响 当涉及到像EPCS128这样的串行闪存设备时,其操作速率直接受限于所提供的时钟信号周期长度。因此建议开发者们仔细查阅官方提供的参数表单,并根据实际情况调整CLK_IN输入值以便获得最佳效果[^4]。 ```verilog module top_level ( input wire clk_in, // 主时钟源 output reg ready // 准备就绪标志 ); always @(posedge clk_in) begin // ...其他逻辑... end endmodule ``` 以上Verilog示例简单描述了一个顶层实体结构图的一部分,其中包含了对外部时钟脉冲敏感的过程语句部分。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值