C2--Vivado开发环境之bit生成,文件组成,代码固化2022-12-08
创始人
2024-03-27 01:46:29
0

1.FPGA的开发流程

Fpga代码的开发分为以下流程:

  • 设计定义(处于架构阶段,对需求进行定义,分析,模块划分)
  • 设计输入(verilog RTL代码输入、原理图)
  • 功能仿真
  • 分析和综合(由源文件综合编译run synthesis与生成特定设计的网表,逻辑综合实质上是设计流程的一个阶段,在这个阶段中将较高级的抽象层次的描述自动的转换成较低层次的描述)
  • 布局布线(run implementation实现编译)
  • 时序仿真(一般不需要)
  • 约束输入(这个是xdc约束文件,时序、引脚约束)
  • 配置(bitstream generator烧写FPGA,可以在线bit流,可以bin、mcs固化)
  • 板级调试(使用ila等工具进行调试)
  • 系统验证与产品发布

上述过程中包含了编译的三个流程,分别是综合编译run synthesis---run implementation实现编译---生成bit位文件

2.以流水灯为例熟悉vivado开发流程

(1)打开vivado创建新工程,路径不要有中文和特殊符号。

 (2)选择RTL project点击下一步

 (3)可以在此处添加源文件,此处选择不添加

 (4)选择不在此处添加约束,直接next.

 (5)选择所用芯片型号

 

 (6)选择finish完成工程创建

 (7)Project summary是工程信息的简要,单击“+”,选择设计文件,next。

 

(8) 选择新建并命名单击OK,选择finish.

(9) 输入RTL,保存.v文件

module Flowled(input clk_i, //输入系统时钟 50MHzoutput reg [2:0]led);
reg [27:0]clk_cnt=0;
reg [1:0]led_cnt=0;
wire switch;
assign switch = clk_cnt==27'd50_000_000;
always @(posedge clk_i) beginif(clk_cnt==27'd50_000_000)begin //1sclk_cnt <= 0;led_cnt <= led_cnt +1;
end else 
clk_cnt <= clk_cnt + 1;
end
always @(*) begin
case (led_cnt)0:led = 3'b000;1:led = 3'b001;2:led = 3'b010;3:led = 3'b100; default: ;
endcase
end
endmodule

(10)依次点击综合和布线

 (11)布线成功后,打开“Open Implemented Design”,打开window中的I/O ports,此处添加所有的约束,并另存为xdc文件,点击generate bitstream

 (12)连接下载器与电源,打开电源,单击open hardware manager ,随后点击open target—>Auto connect

 (13)点击program device下载程序,在板卡上看到对应的LED在闪烁

  3.FPGA文件目录

  •          .cache:vivado软件运行缓存
  •         .hw:波形文件
  •         .ip_user_files:用户关于IP的文件
  •         .runs: 编译与综合的结果,其中\impl-1文件夹中存放的是编译生成的可执行文件,.bin         是可以固化的文件,.bit是烧写的bit流文件。
  •         .sclk:SDK环境代码,一般是ZYNQ设计中关于PS端的代码
  •         .sim:仿真结果文件
  •         .srcs:源码,仿真文件,约束文件
  •         .tmp:自制IP核时的临时设计工程文件夹
  •         .xpr: ivado的工程文件

 4.代码固化

代码固化的原理是将fpga的程序烧录到flash中,flash兼具了rom和ram的有点,即速度快并且掉电不失数据。Vivado的固化文件有两种,一种是mcs文件,一种是bin文件。Bin文件是选择tools-->setting-->bitsream-->勾选 -file_bin,然后正常的生成比特流文件,会在bit文件相同的位置生成bin文件,然后与bit文件的烧写方式一样,只不过选择bin文件即可实现代码的固化。对于mcs有两种方式生成,一种是使用命令窗口tcl输入相应的指令生成mcs,另外一种是tools中选则相应按钮配置生成mcs文件,其中具体的操作过程参看正点原子开发指南。过程较为繁琐,推荐使用bin文件进行固化。现有板卡上的Flash芯片型号MT25QL128ABA1ESE-0SIT,存储容量128  4bitSPIx4

①添加原语(约束文件中)

set_property CFGBVS VCCO [current_design]

set_property CONFIG_VOLTAGE 3.3 [current_design]

set_property BITSTREAM.GENERAL.COMPRESS true [current_design]

set_property BITSTREAM.CONFIG.CONFIGRATE 50 [current_design]

set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 4 [current_design]

set_property BITSTREAM.CONFIG.SPI_FALL_EDGE Yes [current_design]

②生成MCS和prm文件

 

 

从图中我们可以看到一些配置选项,在此仅对我们需要用到的一些配置做简要介绍:

  • Format:指的生成文件的格式,这里我们选择生成 MCS 文件。
  • Custom Memory Size(MB):指的是所用flash的容量大小,这里选128(根据flash手册决定)。
  • Filename:这里编辑生成的mcs文件名称,右边的三个点按钮是选择mcs文件保存路径。
  • Interface:指的是所用flash的通信方式,这里我们选SPIx4(4bit通信flash,根据flash 手册决定)。
  • Load bitstream files:这个选项勾上,然后添加你要生成mcs文件的原文件(bit 流文件)。
  • Write checksum:写校验。
  • Disable bit swapping:禁止位交换。
  • Overwrite:覆盖原文件。

③烧写操作

        

 

 右击选择program flash器件,按照如下图操作(图中mcs文件不对应)

 

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【Ctfer训练计划】——(三... 作者名:Demo不是emo  主页面链接:主页传送门 创作初心ÿ...