FPGA 从零开始学习-第二章第1-1节

FPGA 从零开始学习

第一章 工欲善其事必先利其器–各类工具安装

  1. FPGA开发工具安装
  2. 软件配置和可能遇到的问题

第二章 系统搭建和硬件编程语言的学习

  1. FPGA硬件系统搭建
  • 设计思想与方法
  • VIVADO创建一个完整的工程流程
  1. 硬件编程语言的学习


前言

最近看了好多FPGA的教程和书籍,说实话有好有坏,对于初学者可能并不太友好。书籍一般讲的比较细很教条,对于初学者可能连整体的框架都没有,所以这里我就以自己的理解来梳理整个设计和学习过程吧。


设计思想与方法

1. FPGA系统的设计思想

FPGA的设计中大家可能最长听到的就是Top-down(自顶向下)和Bottom-up(自底向上)两种设计思想。什么意思呢?其实通俗的说就是你先搭建整体系统框架然后去细化各个功能模块呢还是先完成底层模块设计,然后再去用模块堆叠整个系统。
top-down
看图来说明一下,上图就是Top-down的设计思想,因为这种设计更符合大家的逻辑思维模式,所以更通用和主流。

其实这种思想在实际的硬件系统设计中也很常用,我们通常是根据产品需求来设计整个硬件系统,首先明确要最终实现什么功能,然后去分析搭建这些功能需要几个模块,每个模块需要什么主芯片,最后去实现主芯片的外围电路和供电电路。(看看是不是和上面的图很类似?)

结合自己最近的学习来看,FPGA系统的搭建其实是Top-down和Bottom-up相结合才是比较合理的解释。为什么这么说呢?
Top-down做的事情是我们最终要实现什么功能(整体框架),实现这个功能需要几个模块(局部),每个模块是否需要子模块(底层);–这部分可以用原理框图的方式
Bottom-up做的事情是创建子模块(底层),然后调用子模块来实现上层功能模块(局部),最后调用功能模块实现最终功能(整体框架)。–这部分可以用硬件编程语言的方式

模块间的调用就是我们常听到的例化,等用硬件语言实现了所有的底层模块,最后在TOP层例化,就是建立了模块之间的映射,实现了模块调用。

2. FPGA系统的设计方法

开发流程
看上图,前半部分与普通的硬件设计基本一致。从需求分析 --> 系统设计 --> 硬件选型 --> 绘制系统框图(原理图)–> 编写RTL代码(PCB)。之后的事情就是要在仿真软件和VIVADO里做的了,之后再细说。

对于硬件编程语言,这里总结一下:

A. Verilog和VHDL简介
Verilog HDL和VHDL都是用于逻辑设计的硬件描述语言,并且都已成
为IEEE标准。VHDL 1987 年成为标准,而 Verilog 是 1995 年才成为标准。
verilog
能做的事情基本上是差不多的,Verilog与C语言的部分语法相同,所以有C语言基础上手比较快。就使用范围来说,目前在美国,高层次数字系统设计领域中,应用 Verilog 和 VHDL 的比率是 80%和 20%;日本与中国台湾和美国差不多;而在欧洲 VHDL 发展的比较好;在中国很多集成电路设计公司都采用 Verilog。
这里给我指明了学习方向啊,之后就以Verilog为基础了。两种语言保存的文件后缀有区别,注意一下,VHDL后缀.dhl,Verilog后缀是.v。

B. Verilog与C语言比较
Verilog 是硬件描述语言,在编译下载到 FPGA 之后, FPGA 会生成电路;C 语言是软件语言,编译下载到单片机/CPU 之后,还是软件指令,而不会根据你的代码生成相应的硬件电路,而单片机/CPU 处理软件指令需要取址、译码、执行。
对比1
上图是 C 与 Verilog 相对应的关键字与控制结构;
对比2
这个图列出了 C 与 Verilog 相对应的运算符。

本文中的部分图片出自与Verilog经典教程–夏宇闻老师的著作,也是我目前学习的教材之一。


总结

这篇主要是讲了FPGA系统的设计思想和方法,以及硬件编程语言的一些基本介绍,按照自己的学习进度会逐步更新后续篇章。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值