FPGA开篇

考虑了一段时间,本来想对一些数字电路的基础知识再进行回忆一下的,但是觉得那些东西有时候吧似乎也无法与等下要讲的衔接起来,所以偷个懒,打算直接开始搞事情

接下来很长一段时间都将进行FPGA的表述,中间也不时的发一些设计硬件电路和嵌入式开发的讲解,如果对FPGA也还不知道是什么东西的朋友可以自己上网了解,反正一个字表述就是:“强”,还有呢就是以后的表达以Verilog这个硬件描述语言进行,VHDL是真的打扰了,感觉太严谨,不适合我的编程习惯。

首先对FPGA的设计开发流程要有个了解,方便以后的了解,可看下图了解,这是以前上相关的课程时老师提供的一个图。

常用的源程序输入方式有三种:

1)原理图输入方式

优点是容易上手,看着也很直观,缺点是可读性差,复用性差,移植也困难

2)状态图输入方式

简化了状态机的设计

3)HDL软件程序的文本方式

是最普遍的输入方式,任何支持HDL的EDA工具都支持该方式的编辑与编译

感兴趣的可以去自行学习1)和2)的输入方式,我主要记录文本方式的输入。

逻辑综合就是将你以上述方式或其他方式输入的源程序转化为可以与可编程逻辑器件相映射的门级网表文件;

布线/适配就是将综合器产生的网表文件对具体的目标器件进行逻辑映射操作,包括底层器件配置、逻辑分割、逻辑优化、布线与操作等,配置到指定的目标器件,产生需要的下载文件。

编程器/下载电缆是当你编译、综合、布线/适配和仿真等过程都没发现问题,则可以将产生的下载文件通过下载器写入FPGA中,注意这时候的文件是掉电就会丢失的,并没有固化。

设计时,根据不同的设计阶段,仿真可以分为三大类型,详细名称如下:

1、RTL级行为仿真(又称作为、前仿真)

这个阶段的仿真是检查代码中的语法错误和代码行为的正确与否,不含延时信息。

2、综合后门级功能仿真;

将综合后网表文件再送到仿真器进行的仿真。

3、时序仿真(又称为后仿真)。

在设计布局布线都完成后,可以提供一个时序仿真的模型,该模型含有器件信息,也会提供SDF时序标注文件(Standard Delay format Timing Anotation)。

今天主要对FPGA的一些设计流程做一个大概的了解,可能是我不太喜欢这些纯表述性的东西,感觉弄得有些不足,对于它的历史背景那些东西,就大家自己网络上看了,也很详细;之后将开始Verilog的编写,对它历史感兴趣的也可以继续上网查阅,这些多了解下也可以增加点知识,当然需要有一些准备工作~

首先接下来的一段时间是进行简单的代码仿真,然后对Verilog的语法有一定的熟悉,所以需要安装有一个Modelsim,也可以装FPGA大厂商的开发软件,比如,Xilinx的ISE、VIVADO;Inter 的Quartus ii;紫光同创的PDS等,具体的还是需要根据自己现有的板卡进行安装,没必要都进行安装,就初学者来说,有一个Modelsim和已有板卡或将拥有的板卡对应的开发软件,甚至你只需要一个Modelsim进行仿真去学习就够用了,我当初就傻傻的花了几百去买了个学习板,现在看着那板子都心塞塞的

本文分享自微信公众号 - 电子狂人(DZKR666),作者:狂人V

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-04-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • FPGA的基本架构

    ,今天写的这个其实很早我就想记录下了,以前学数电的时候好像就有接触到相关的一些概念,但是后来学FPGA以后没太注意,感觉没什么关系,直到多次遇到梗以后才想着对这...

    狂人V
  • 一个曾经被安利的“表白利器”

    心形灯大概原理就是流水灯,基本上学单片机的,最开始都会接触流水灯或者跑马灯之类控制LED灯的操作,所以要做出这个东西蛮简单的。

    狂人V
  • System Generator系列之时序分析

    双击System Generator,将Compilation菜单下的Compilation改为HDL Netlist,语言可以改成Verilog,也可以默认使...

    狂人V
  • D12-Android自定义控件之--二分搜索树

    张风捷特烈
  • 源码系列-OkHttp(2)

    OkHttp官网地址:https://square.github.io/okhttp/

    用户3112896
  • 基于JSP动漫论坛的设计与实现

    基本功能包括:注册用户、登录、浏览帖子、发布新帖、回复帖子、等。本系统结构如下: (1)普通用户:   注册用户:如果用户为非会员用户,通过注册,经审核通过之...

    RunWsh
  • 转--从面向对象的角度看Go语言与Java语言的区别

    Go语言风格 GO语言是支持并发编程和内存垃圾回收的编译型静态类型语言,运行效率高,具有较强的可伸缩性(scalable)。它是为软件工程服务而进行的语言设计,...

    李海彬
  • 高可用 - 简述

    高可用性 描述了一个周期内的功能连续可用的绝对程度,可表示为正常运行时间和停机时间之间的关系,如下公式:

    zhangyunfeiVir
  • 我们一起学Mock

    我们现在已经在使用的工具名为Moco,可以参考《一款好用的测试工具之MOCO》《学习Moco接口框架》我们今天讨论的是Mitmproxy工具,对比Moco工...

    用户5521279
  • Godot3游戏引擎入门之五:上下左右移动动画(下)

    2018-10-11 by Liuqingwen | Tags: Godot | Hits

    IT自学不成才

扫码关注云+社区

领取腾讯云代金券