深圳市航顺芯片技术研发有限公司
直播中

hxjq

12年用户 783经验值
私信 关注
[问答]

FPGA入门开发具体流程有哪些?求过程

FPGA入门开发具体流程有哪些?求过程

回帖(1)

陈蓓

2021-7-26 16:05:12
一、总体流程
开发工具:
Vivado2020
Verilog
ARTIX-7 FPGA AX7035
这是我做的完整流程,涉及到初级开发的功能;
新建工程:(RTL Project)芯片选型;
编写程序:源文件,仿真文件,约束文件;
时序仿真;
约束:IO配置;
综合;
实现生成二进制文件,下载验证。
这是网上找的的开发流程框图

二、具体流程
2.1 新建工程



现在进入了开发主界面,认识一下IDE的各部分

可以在右上角把自己拖拽好的布局保存下来。
2.2 编写程序
新建源文件:

然后有3个选择,分别对应约束文件,设计文件和仿真文件。此处先选择设计文件,也就是我们写的功能。





新建程序完成,开始写程序
这里忽视Verilog基础知识,可以先梳理整个流程。
然后反过来再看基础语法,推荐一个:传送门

代码:代码的意思先不说
module myLed( clk, rst_n, led ); input clk; input rst_n; output led; reg [27:0] cnt; //定义一个计数器计时 always @ (posedge clk or negedge rst_n) if(!rst_n) cnt《=0; //复位置0计数器 else if(cnt《=27‘d50000000) //需要经过50000000个周期才达到1s cnt《=cnt+1’d1; else cnt《=0; assign led=(cnt《=25000000) ? 1‘b1:1’b0; //占空比50% endmodule 这里有一个不好,和MATLAB2018一样,输入中文我的搜狗输入法会卡住,这就很烦人哦
2.3 时序仿真
新建仿真文件:

编写仿真文件:
`timescale 1ns / 1ps module sim_myLed( ); reg clk; //输入时钟 reg rst_n; //输入复位 //reg [27:0] cnt1; //定义一个计数器计时, how to sew this? wire led; myLed later( .clk(clk), .rst_n(rst_n), //.cnt1(cnt), .led(led) ); initial begin rst_n = 1; clk=1; #100; $finish; //wait for user to click run button simulate, then start sim end always #100 clk = ~clk; // 125M ,as the simulation staeted, it works endmodule 写完仿真文件后,在sim_myLed上右击,set as Top,然后进行仿真


这里需要说明一下,仿真起来要和编写的仿真文件是相关的。仿真文件的编写,下面分析一下。
reg clk; //输入时钟 reg rst_n; //输入复位 //reg [27:0] cnt1; //定义一个计数器计时, how to sew this? wire led; 这三个是当前仿真文件下申明的变量,其中输入时reg,输出是wire。
myLed later( .clk(clk), .rst_n(rst_n), //.cnt1(cnt), .led(led) ); 这个叫做例化。可以理解为一个类的实例化。
其中,myLed是之前的设计文件,later是实例化的名字。
.clk(clk)就是参数,.clk()就是仿真文件里面的变量,括号里面就是myLed里面的。就相当于绑定在一起了。
(类比面向对象中类的实例化)
initial begin rst_n = 1; clk=1; #100; $finish; //wait for user to click run button simulate,then start sim end always #100 clk = ~clk; // 125M ,as the simulation staeted, it works 这里initial下面这一段是启动仿真软件是执行的部分,也就是仿真的初始化,#100就是延时100单位时间,$finish就是等待用户进行下面的仿真。
always就是从头到尾一直执行的部分,这里一是是100个单位时间进行一次翻转,也就是时钟信号了。
3.4 约束文件
新建约束文件就略过了。
这里需要知道自己的开发板对应的IO口。
我用的开发板是这个:传送门
先点击左侧Schematic
再双击威廉希尔官方网站 图上面的IO Ports
最后再下面选择Package Pin(需要对照原理图的接线)
I/O std 先不要动,还没深入了解

好了之后可以看到约束文件:
觉得熟悉之后直接写约束文件会更高效。

2.5 综合

说一下我遇到的问题,可能大家也会遇到
好长时间综合没反应。
在工程综合的run的目录下运行系统cmd,看看能不能执行目录下面的这个bat文件。


试过william hill官网 的好多方法都没有成功,千万别轻易相信换系统换软件版本的方法,成本太大。
我最后发现是电脑管家拦截了
但是也不绝对,问题现象一样但是原因未必。
2.6 生成二进制文件,下载验证
需要开发板打开电源,安装下载器驱动
举报

更多回帖

发帖
×
20
完善资料,
赚取积分