当前位置:主页 > 查看内容

通过AS下载固化

发布时间:2021-05-28 00:00| 位朋友查看

简介:以下是如何通过AS接口进行固化的过程介绍 实验软件quartus II 9.1 实验板子terasic DE0 知识概论JTAG模式和AS模式的用途以及区别是什么呢 答 fpga支持JTAG Programming和Active Serial(AS) Programming两种mode。 ①通过JTAG模式下载的程序分为 .sof 和 .jic……

以下是如何通过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原理图
在这里插入图片描述

;原文链接:https://blog.csdn.net/qq_44250700/article/details/115518657
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!

推荐图文


随机推荐