官方论坛
官方淘宝
官方博客
微信公众号
点击联系吴工 点击联系周老师
您的当前位置:主页-old > 教程中心 > 问题解答 >

00_FPGA概述/概念/常识【汇总贴】

发布时间:2023-07-29   作者:admin 浏览量:
如果同学们的问题我们帖子里面没有的请第一时间联系我微信同步:18022859964江老师,我们对新问题进行补充!



通过平时同学们反馈学习中经常用到的学习点,因此明德扬最近做了抖音系列短视频,都是一些FPGA学习技巧分享.
大家感兴趣可以关注明德扬抖音号:87481069842,内容不断更新!记得关注点赞学习不迷路!



【问题1】FPGA是否和ARM一样,包含了IIC、SPI、CPU等功能?

答:FPGA芯片相当于一张白纸,设计师可以在FPGA里面实现任意功能,包括IIC、SPI和CPU等,都可以设计出来。

      但注意,这功能是要设计出来的,它本身是没有这功能的。



【问题2】老师请问如何查看程序在开发版上的运行时间,不然怎么说FPGA的速度快?

答:FPGA的运行时间,不是看“程序的综合编译时间”,也不是像软件那样看“看程序的执行时间”,

而是应该像硬件那样,看“数据进来到数据出去的时间”。这个时间,可以通过仿真来看到。



【问题3】FPGA的输出管脚,支持多种管脚标准吗?可以支持不同电平吗?电平是由谁决定的?

答:FPGA支持多种电平输出,例如LVCMOS、TTL、LVDS等。其也支持1.5V 1.8V 2.5V 3.3V等多种电平。

这些都是在QUARTUS、VIVADO、ISE软件中,配置管脚时,可以同时配置电平的。



【问题4】FPGA输出管脚,在上电时候的值,是高电平还是低电平,是谁来决定的?
答:FPGA是一张白纸,值是多少,自然是FPGA代码来决定。最开始时的值,就是该信号的复位值。


【问题5】FPGA工程的设计文件只有一个吗?还是可以有多个?

答:FPGA工程由一个或多个设计文件组成。一般规范的做法是:一个模块一个文件。这意味着一个工程是由众多个模块组成的。

      工程包含一个顶层模块,这个顶层模块可以通过“例化”的方法,关联下一级模块。这样一级一级关联下去。


【问题6】如果用fpga写算法,怎么把公式转换成代码?

答: 这里只能作为一个宏观的解释。FPGA是一种很底层的设计,一般需要我们读懂公式后,用verilog的方法把它设计出来。

     我们可以使用提verilog语法中的加法(+)、减法(-)、乘法(*),这些符合可以直接用于设计。

     我们还可以使用官方提供的IP核,如乘法器、除法器等。

     例如一个算法:h = a + b*c + e/f,最后面的e/f可以用除法器实现,其他部分,可以直接使用代码实现。
     当然,上面实现中没有考虑到时序因素,这需要我们边设计边仿真边调试。 

     有人认为,上面实现很很复杂,这是FPGA的一个特点,FPGA本身是一个底层硬件,实现起来是很复杂的,没办法的事。

     您或许需要的资料:http://old.mdy-edu.com/wentijieda/20210409/1212.html?1618201115  

     明德扬的公开课,第3部分,是关于C语言转为VERILOG的技巧。《FPGA至简原理与应用》一书中,关于补码的部分。


【问题7】输入IO时钟信号,想把这个时钟作为全局时钟用,是不是必须经过 bufg或者bufr?
答:ALTERA上不需要。XILINX的代码可能需要。虽然部分代码不用写出来,但工具会自动补充BUF。


【问题8】经过bufg,延迟是一个时钟周期吗?
答:不是,延迟跟时钟周期无关。具体请看BUFG的官方资料



【问题9】请教个问题哈,我vivado工程里,有ip核了,还可以将整个工程封装成一个ip核不?
答:可以实现的,具体操作麻烦同学百度搜索一下。



【问题10】问一下复位信号出现在组合逻辑中会导致什么问题?
答:复位管脚和时钟管脚是非常之重要的信号。这两个信号都会直接连接到D寄存器的专用管脚上。这个专用管脚对信号变化是很敏感的,例如复位稍微有毛刺就会响应了。
组合逻辑存在竞争冒险现象,很容易产生毛刺,所以复位信号不要连到组合逻辑里。



【问题11】复位信号连接到组合逻辑后,再同步释放能解决上述问题?

答:可以的。此处所说的“复位信号”是对于使用者来说的复位信号;该“复位信号”连到组合逻辑,再同步释放,将产生新的信号“复位信号2”,“复位信号2”

才是真正连到D触发器管脚的。建议,更多方法内容,应该看相应文档,有很详细介绍。 


【问题12】fpga一个变量只能在一个时序逻辑里面赋值,但是我想多个模块都会对它进行操作,应该怎么来处理呢

答:最终都只能一个“一个信号/管脚”赋值。如果多个模块对一个管脚/信号赋值,这是不可以的,需要一个中间模块来整合处理一下。 就这比如,电脑主机上有一个USB口,而现在是有多个USB外设想连到这个USB口上,直接连是根本连不起来的。解决办法就是增加一个USB HUB。通过这个USB HUB来连到USB口上。 这个USB HUB,就是上面所说的中间模块。





温馨提示:明德扬除了培训学习还有项目承接业务,擅长的项目
主要包括的方向有以下几个方面:


1. MIPI视频拼接


2. SLVS-EC转MIPI接口(IMX472 IMX492)

3. PCIE采集系统

4. 图像项目

5. 高速多通道ADDA系统

6. 基于FPGA板卡研发

7. 前端模拟采集、射频、电荷灵敏前置放大器


需要了解相关信息可以联系:兰老师180119392(微信同号)



明德扬科技教育



   拓展阅读