学习使用Vivado和SDK进行Xilinx ZYNQ FPGA开发 | (九)FPGA开发流程 | 2023.10.19/星期四/天气雨

系列文章目录

学习使用Vivado和SDK进行Xilinx ZYNQ FPGA开发 | (一)开始
学习使用Vivado和SDK进行Xilinx ZYNQ FPGA开发 | (二)学习方法选择
学习使用Vivado和SDK进行Xilinx ZYNQ FPGA开发 | (三)安装并破解Vivado和SDK
学习使用Vivado和SDK进行Xilinx ZYNQ FPGA开发 | (四)安装并破解Modelsim
学习使用Vivado和SDK进行Xilinx ZYNQ FPGA开发 | (五)ZYNQ-7000芯片摘要
学习使用Vivado和SDK进行Xilinx ZYNQ FPGA开发 | (六)ZYNQ-7000芯片的PS有什么资源
学习使用Vivado和SDK进行Xilinx ZYNQ FPGA开发 | (七)ZYNQ-7000芯片的PL有什么资源
学习使用Vivado和SDK进行Xilinx ZYNQ FPGA开发 | (八)ZYNQ-7000芯片的CLB
学习使用Vivado和SDK进行Xilinx ZYNQ FPGA开发 | (九)FPGA开发流程(本文)



摘要

根据EDA书中的描述:“假设我们需要建造一栋楼房,第一,我们需要进行‘建筑设计’——用各种设计图纸把我们的建筑设想表示出来;第二,我们要进行‘建筑预算’——根据投资规模、拟建楼房的结构及有关建房的经验数据等计算需要多少基本建筑材料(如砖、水泥、预制块、门、窗户等);第三,根据建筑设计和建筑预算进行‘施工设计’——这些砖、水泥、预制块、门、窗户等具体砌在房子的什么部位,相互之间怎样连接;第四,根据施工图进行‘建筑施工’——将这些砖、水泥、预制块、门、窗户等按照规定施工建成一栋楼房;最后,施工完毕后,还要进行‘建筑验收’——检验所建楼房是否符合设计要求。同时,在整个建设过程中,我们可能需要做出某些‘建筑模型’或进行某些‘建筑实验’”。
我们对FPGA的Verilog设计,则是类似的流程:

  1. 进行“源程序的编辑和编译”——用一定的逻辑表达手段将设计表达出来;
  2. 进行“逻辑综合”——将用一定的逻辑表达手段表达出来的设计,经过一些列操作,分解成一系列的基本逻辑电路及对应关系(电路分解);
  3. 进行“目标器件的布线/适配”——在选定的目标器件中建立这些基本逻辑电路及对应关系(逻辑实现);
  4. 目标器件的编程/下载——将前面的软件设计经过编程变成具体的设计系统(物理实现);
  5. 进行硬件仿真/硬件测试——验证所设计的系统是否符合设计要求。
  6. 同时,在设计过程中要进行有关“仿真”——模拟有关设计结果,看是否与设计构想相符。

一、源程序的编辑和编译

进行FPGA工程设计,首先需利用编辑器将设计用文本或图形方式表达出来,进行排错编译,变成Verilog文件格式,为进一步的逻辑综合做准备。
书上说常用的源程序输入有三种:

  1. 原理图输入方式。可以利用开发环境提供的图形编辑器,以原理图的方式进行输入。这种方式比较直观、易掌握,但是缺点也明显:①设计规模增大后可读性差,连线密密麻麻;②设计完成后,电路结构改变困难,也几乎不可有再利用的模块;③移植、入档、交流、交付困难,因为不存在标准化的图形编辑器。
  2. 状态图输入方式。以图形的方式表示状态图进行输入,当填好时钟信号名、状态转换条件、状态机类型等要素后,就可以自动生成Verilog程序。这种方式简化了状态机的设计。
  3. Verilog文本输入方式。这是最一般化、最具普遍性的输入方法,任何支持Verilog的开发环境都支持文本方式的编辑和编译。

二、逻辑综合和优化

欲把Verilog的软件设计与硬件的可实现性挂钩,需要利用开发环境的综合器进行逻辑综合。
所谓的逻辑综合,就是将电路的高级语言描述(如Verilog的描述)转换成低级的,可与FPGA/CPLD或构成ASIC的门阵列基本结构相映射的网表文件。逻辑映射的过程,就是将电路的高级描述,针对给定的FPGA硬件结构组件,进行编译、优化、转换和综合,最终获得门级电路甚至更底层的电路描述文件的过程。网表文件,就是按照某种规定描述电路的基本组成及如何相互连接的文件。
Verilog语句中,有可综合的语句,也有不可综合的语句,综合器会将不可综合的语句忽略。综合器对Verilog源文件的综合是针对某一具体FPGA系列的产品,因此综合后的结果是可以为硬件所接受的,具有硬件可实现性。

三、目标器件的布线/适配

所谓逻辑适配,就是将由综合器产生的网表文件针对某一具体的FPGA器件进行逻辑映射操作,其中包括底层器件配置、逻辑分割、逻辑优化、布线与操作等,配置于制定的目标FPGA器件中,产生最终的下载文件,如bit文件。
通常,FPGA开发环境中的综合器可以由专业的第三方公司提供,但是适配器则需要由FPGA供应商自己提供,因为适配器的适配对象直接与器件结构相对应。

四、目标器件的编程/下载

如果编译、综合、布线/适配和行为仿真、功能仿真、时序仿真等过程都没有发现问题,即满足原设计的要求,则可以将由FPGA布线/适配器产生的配置/下载文件通过编程器或下载电缆载入目标FPGA芯片中。

五、设计过程中的有关仿真

设计过程中有三种仿真,分别是:行为仿真、功能仿真、时序仿真。
所谓行为仿真,就是将Verilog设计源程序直接送到Verilog仿真器中所进行的仿真。该仿真只是根据Verilog的语义进行的,与具体电路没有关系。在这种仿真中,可以充分发挥Verilog中的适用于仿真控制的语句及有关的预定义函数和库文件(不可综合)。
所谓功能仿真,就是将综合后的Verilog网表文件再送到Verilog仿真器中所进行的仿真。这是的仿真仅对Verilog描述的逻辑功能进行测试模拟,以了解其实现的功能是否能满足原设计的要求,仿真过程不涉及具体器件的硬件特性,如延时特性。该仿真的结果与门级仿真器所做的功能仿真结果基本一致。
所谓时序仿真,就是将布线器/适配器所产生的Verilog网表文件送到Verilog仿真器中所进行的仿真。该仿真已将器件特性考虑进去了,因此可以得到精确的时序仿真结果。布线/适配处理后生成的Verilog网表文件中已包含了较为精确的延时信息,网表文件中描述的电路结构与布线/适配后的结果是一致的。

六、设计过程中的有关仿真

所谓硬件仿真,就是在ASIC设计中,常利用FPGA对系统的设计进行功能检测,通过后再将其Verilog设计以ASIC形式实现的过程。
所谓硬件测试,就是把FPGA直接用于应用系统的设计中,将下载文件下载到FPGA后,对系统设计进行功能检测的过程。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值