C2--Vivado开发环境之bit生成,文件组成,代码固化2022-12-08
创始人
2024-03-27 05:26:22
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文件不对应)

 

相关内容

热门资讯

【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...