通过AS下载固化

   日期:2021-04-10     浏览:126    评论:0    
核心提示:成功地瞬间我不禁拍手:我真棒!!嘻嘻以下是如何通过AS接口进行固化的过程介绍知识概论:JTAG接口和AS接口的用途以及区别是什么呢?*答:*通过JTAG接口下载的程序,一断电就会消失;而通过AS接口下载的程序是直接写进flash的,断电后不会消失。以terasic DE0为例:在板子上有一个拨码开关,当开关拨到上边时是JTAG接口模式,当开关拨到下边时是AS接口模式。固化步骤①将编写好的程序进行编译(点工具栏上那个紫色的小三角编译)②点击File→Convert Programming

以下是如何通过AS接口进行固化的过程介绍
实验软件:quartus II 9.1
实验板子:terasic DE0

  1. 知识概论:JTAG模式和AS模式的用途以及区别是什么呢?
    答: fpga支持JTAG Programming和Active Serial(AS) Programming两种mode。
    ①通过JTAG模式下载的程序,分为 .sof.jic 两种。其中 .sof 文件是写入FPGA的SRAM/EPCS (Flash)里的,断电后数据会消失,需要重烧,一般运用于仿真调试。通过JTAG模式把.sof文件转化为.jic文件进行下载,烧写到配置寄存器里,上电后写入FPGA,可以实现间接固化,下一篇笔记会写到 .jic 具体固化过程】;
    通过AS模式下载的文件是.pof ,是直接写进FPGA的配置芯片的,断电后不会消失。
  2. AS固化步骤
    ①将编写好的程序进行编译(点工具栏上那个紫色的小三角编译)
    ②点击File→Convert Programming Files…→Configuration device那里选择板子对应的型号(可以查阅板子手册,简介里就有写)。此处我通过查阅手册(见下图),选择EPCS4


    Input files to convert下面的框框里选择SOF Data→点击右侧Add Sof Data,在弹出框里选择生成的sof文件,打开→选中刚刚加进来的.sof文件→点击右侧的properties→在弹出框里勾选Compression,点击OK 点击右下角的Generate→会弹出框显示Generated…(你的文件名).sof Successfully【注意:如果显示unsuccessfully,应该是你的Configuration device写错了,一定要查看板子上对应的型号】

    ③在板子上有一个拨码开关,当开关拨到上边时是JTAG接口模式,当开关拨到下边时是AS接口模式。这里我们把开关拨到下边,也就是PROG方向

    Tools→Programmer→ Mode选择Active Serial Programming,会弹出一个框问你是否确定要改:【some devices in current device list cannot be added to selected Programming mode Active Serial Programming. Do you want to clear all devices current device list and switch to selected mode?】选择“是”,此时会看到原先方框里的.sof文件被删掉了点击左侧Add file…,选择刚刚生成的 .pof 文件 →start
    ⑤当Progress为100%时,就说明烧录好了。

    ⑥把板子电源断掉,然后重新开启,会看到七段数码管已经烧录成功。【如图所示,是我烧录好的“0000”】

附:
我这个实验最终想要的结果就是实现“0000”稳定常亮。下面是我这个实验的verilog HDL代码和BDF原理图。

代码

module testone( 
 OUT); 
 output [7-1:0] OUT; 
 reg[7-1:0] OUT;  
 always @(*) begin 
 OUT=7'b 1000000; 
 end endmodule  
 
 module testonee( 
 OUT); 
 output [7-1:0] OUT; 
 reg[7-1:0] OUT;  
 always @(*) begin 
 OUT=7'b 1000000; 
 end endmodule  
 
 module testoneee( 
 OUT); 
 output [7-1:0] OUT; 
 reg[7-1:0] OUT;  
 always @(*) begin 
 OUT=7'b 1000000; 
 end endmodule  
 
 module testoneeee( 
 OUT); 
 output [7-1:0] OUT; 
 reg[7-1:0] OUT;  
 always @(*) begin 
 OUT=7'b 1000000; 
 end endmodule

其实就是四个相同的模块并列,每个模块控制一个七段数码管。可以把四个数码管用一个模块控制。因为是恒定常亮,所以可以不用添加时钟模块

BDF原理图

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
更多>相关资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服