- 简 称
- FPGA
- 所属类别
- AI 芯片
- 中文名
- 现场可编程逻辑门阵列
- 外文名
- Field Programmable Gate Array
-
FPGA
2017-07-30 16:08:13项目中说需要用FPGA做CNN加速,FPGA完全没有听说过,所以这几天造成不少困扰(其实是完全把我搞糊涂了),写点东西记录一下 项目组用树莓派?!什么,难道和FPGA不冲突吗 别笑,我知道这个问题很弱智,但却难倒我...项目中说需要用FPGA做CNN加速,FPGA完全没有听说过,所以这几天造成不少困扰(其实是完全把我搞糊涂了),写点东西记录一下
- 项目组用树莓派?!什么,难道和FPGA不冲突吗
别笑,我知道这个问题很弱智,但却难倒我整整一天,由于我以前一点接触过硬件方面的知识,所以才有这个困扰。FPGA为类似于GPU的东东,全称为“可编程门阵列”,不同于GPU在出厂前就已经写好了硬件代码,FPGA需要自己写硬件描述,正是由于这个原因,可以重复写入硬件描述代码,FPGA相当于GPU!
贴几个最近找的网站
目前在机器学习领域异构计算得到重视,GPU占据主流位置,Fpga初现端倪,不知fpga在机器学习的前景如何?–知乎
由于我不打算深入嵌入式,所以FPGA的工作就交给其他人去做了,恩,就是这样
-
如何学习FPGA
2015-03-25 20:27:45推荐的教材是《FPGA权威指南》、《Altera FPGA/CPLD设计》第二版的基础篇和高级篇两本。学会加快编译速度(增量式编译、LogicLock),静态时序分析(timequest),嵌入式逻辑分析仪(signaltap)就算是通关了。如果...PS:笔者强烈建议诸位注册一个EETOP的账号,每天签到或者发贴、回贴就有积分了,里面的资源非常丰富,各种软件、资料都能找到。
一、入门首先要掌握HDL(HDL=verilog+VHDL)。
第一句话是:还没学数电的先学数电。然后你可以选择verilog或者VHDL,有C语言基础的,建议选择VHDL。因为verilog太像C了,很容易混淆,最后你会发现,你花了大量时间去区分这两种语言,而不是在学习如何使用它。当然,你思维能转得过来,也可以选verilog,毕竟在国内verilog用得比较多。
接下来,首先找本实例抄代码。抄代码的意义在于熟悉语法规则和编译器(又叫综合器),常用的集成开发环境有:Intel的Quartus、Xilinx的ISE和Vivado、Design Compiler 、Synopsys的VCS、Linux下的iverilog、Lattice的Diamond、Microchip的Libero、Synplify pro,然后再模仿着写,最后不看书也能写出来。编译完代码,就打开RTL图,看一下综合出来是什么样的电路。
HDL是硬件描述语言,突出硬件这一特点,所以要用数电的思维去思考HDL,而不是用C语言或者其它高级语言,如果不能理解这句话的,可以看《什么是硬件以及什么是软件》。在这一阶段,推荐的教材是《Verilog HDL高级数字设计》或者是《用于逻辑综合的VHDL》。不看书也能写出个三段式状态机就可以进入下一阶段了。
此外,你手上必须准备Verilog或者VHDL的官方文档,《verilog_IEEE官方标准手册-2005_IEEE_P1364》、《IEEE Standard VHDL Language_2008》,以便遇到一些语法问题的时候能查一下。
二、独立完成中小规模的数字电路设计。
现在,你可以设计一些数字电路了,像交通灯、电子琴、DDS等等,推荐的教材是《Verilog HDL应用程序设计实例精讲》。在这一阶段,你要做到的是:给你一个指标要求或者时序图,你能用HDL设计电路去实现它。这里你需要一块开发板,可以选Altera的cyclone IV系列,或者Xilinx的Spantan 6。还没掌握HDL之前千万不要买开发板,因为你买回来也没用。这里你没必要每次编译通过就下载代码,咱们用modelsim仿真(此外还有QuestaSim、NC verilog、Diamond的Active-HDL、VCS、Debussy/Verdi等仿真工具),如果仿真都不能通过那就不用下载了,肯定不行的。在这里先掌握简单的testbench就可以了。推荐的教材是《WRITING TESTBENCHES Functional Verification of HDL Models》。
三、掌握设计方法和设计原则。
你可能发现你综合出来的电路尽管没错,但有很多警告。这个时候,你得学会同步设计原则、优化电路,是速度优先还是面积优先,时钟树应该怎样设计,怎样同步两个异频时钟等等。推荐的教材是《FPGA权威指南》、《Altera FPGA/CPLD设计》第二版的基础篇和高级篇两本。学会加快编译速度(增量式编译、LogicLock),静态时序分析(timequest),嵌入式逻辑分析仪(signaltap)就算是通关了。如果有不懂的地方可以暂时跳过,因为这部分还需要足量的实践,才能有较深刻的理解。
四、学会提高开发效率。
因为Quartus和ISE的编辑器功能太弱,影响了开发效率。所以建议使用Sublime text编辑器中代码片段的功能,以减少重复性劳动。Modelsim也是常用的仿真工具,学会TCL/TK以编写适合自己的DO文件,使得仿真变得自动化,推荐的教材是《TCL/TK入门经典》。你可能会手动备份代码,但是专业人士都是用版本控制器Git的,可以提高工作效率。文件比较器Beyond Compare也是个比较常用的工具,Git也有比较功能。此外,你也可以使用System Verilog来替代testbench,这样效率会更高一些。如果你是做IC验证的,就必须掌握System Verilog和验证方法学(UVM)。推荐的教材是《Writing Testbenches using SystemVerilog》、《The UVM Primer》、《System Verilog1800-2012语法手册》。
掌握了TCL/TK之后,可以学习虚拟Jtag(ISE也有类似的工具)制作属于自己的调试工具,此外,有时间的话,最好再学个python。脚本,意味着一劳永逸。
五、增强理论基础。
这个时候,你已经会使用FPGA了,但是还有很多事情做不了(比如,FIR滤波器、PID算法、OFDM等),因为理论没学好。我大概地分几个方向供大家参考,后面跟的是要掌握的理论课。
1、信号处理——信号与系统、数字信号处理、多采样率信号处理、数字图像处理、现代数字信号处理、盲信号处理、自适应滤波器原理、雷达信号处理
2、接口应用——如:UART、SPI、IIC、USB、CAN、PCIE、Rapid IO、DDR、TCP/IP、SPI4.2(10G以太网接口)、SATA、光纤、DisplayPort、HDMI
3、无线通信——信号与系统、数字信号处理、通信原理、移动通信基础、随机过程、信息论与编码
4、CPU设计——计算机组成原理、单片机、计算机体系结构、编译原理、RISC-V
5、仪器仪表——模拟电子技术、高频电子线路、电子测量技术、智能仪器原理及应用
6、控制系统——自动控制原理、现代控制理论、过程控制工程、模糊控制器理论与应用
7、压缩、编码、加密——数论、抽象代数、现代编码技术、信息论与编码、数据压缩导论、应用密码学、音频信息处理技术、数字视频编码技术原理、H.265
现在你发现,原来FPGA会涉及到那么多知识,你可以选一个感兴趣的方向,但是工作中很有可能用到其中几个方向的知识,所以理论还是学得越多越好。如果你要更上一层,数学和英语是不可避免的。
六、学会使用MATLAB仿真。
设计FPGA算法的时候,多多少少都会用到MATLAB,比如CRC的系数矩阵、FFT、数字滤波器系数、各种表格和文本处理等。此外,MATLAB还能用于调试HDL(用MATLAB的计算结果跟用HDL算出来的一步步对照,可以知道哪里出问题)。推荐的教材是《MATLAB宝典》和杜勇的《数字滤波器的MATLAB与FPGA实现》。
七、足量的实践。
这个时候你至少读过几遍芯片手册(官网有),然后可以针对自己的方向,做一定量的实践了(期间要保持良好的代码风格,增加元件例化语句的可读性,绘制流程图/时序图,撰写文档的习惯)。比如:通信类的可以做调制解调算法,仪表类的可以做总线分析仪等等。不过这些算法,在书上只是给了个公式、框图而已,跟实际的差距很大,你甚至会觉得书上的东西都很肤浅。那么,你可以在知网、百度文库、EETOP论坛、opencores、ChinaAET、SCI-HUB、Q群共享、博客上面找些相关资料(校外的朋友可以在淘宝买个知网账号)。其实,当你到了这个阶段,你已经达到了职业级水平,有空就多了解一些前沿技术,这将有助于你的职业规划。
在工作当中,或许你需要关注很多协议和行业标准,协议可以在EETOP上面找到,而标准(如:国家标准GB和GB/T,国际标准ISO)就推荐《标准网》和《标准分享网》。
八、图像处理。(这部分只写给想学图像处理的朋友,也是由浅入深的路线)
1、Photoshop。花一、两周的时间学习PS,对图像处理有个大概的了解,知道各种图片格式、直方图、色相、通道、滤镜、拼接等基本概念,并能使用它。这部分是0基础,目的让大家对图像处理有个感性的认识,而不是一上来就各种各样的公式推导。推荐《Photoshop CS6完全自学教程》。
2、基于MATLAB或OpenCV的图像处理。有C/C++基础的可以学习OpenCV,否则的话,建议学MATLAB。这个阶段下,只要学会简单的调用函数即可,暂时不用深究实现的细节。推荐《数字图像处理matlab版》、《学习OpenCV》。
3、图像处理的基础理论。这部分的理论是需要高数、复变、线性代数、信号与系统、数字信号处理等基础,基础不好的话,建议先补补基础再来。看不懂的理论也可以暂时先放下,或许学到后面就自然而然地开窍了。推荐《数字图像处理》。
4、基于FPGA的图像处理。把前面学到的理论运用到FPGA上面,如果这时你有前面第七个阶段的水平,你将轻松地独立完成图像算法设计(图像处理是离不开接口的,上面第五个阶段有讲)。如果你没有开发板,请参考《Verilog读取bmp图片》。推荐《基于FPGA的嵌入式图像处理系统设计》、《基于FPGA的数字图像处理原理及应用》。
5、进一步钻研数学。要在算法上更上一层,必然需要更多的数学,所以这里建议学习实分析、泛涵分析、小波分析等。
下面这两个阶段是给感兴趣的朋友介绍的。
九、数电的尽头是模电。
现在FPGA内部的事情是难不到你的,但是信号出了FPGA,你就没法控制了。这个时候必须学好模电。比如:电路分析、模拟电子技术、高频电子线路、PCB设计、EMC、SI、PI等等,能设计出一块带两片DDR3的FPGA开发板,就算通关了。具体的学习路线可以参考本博客的《如何学习硬件设计——理论篇》和《如何学习硬件设计——实践篇》。
十、学无止境。
能到这个境界,说明你已经很厉害了,但是还有很多东西要学的,因为FPGA常常要跟CPU交互,也就是说你得经常跟软件工程师交流,所以也得懂点软件方面的知识。比如ARM(Xilinx的ZYNQ和Altera的SOC会用到ARM的硬核,请参考本博客的《如何学习嵌入式软件》)、DSP、Linux、安卓、上位机(QT、C#、JAVA)都可以学一下,反正学无止境的。
十一、其它问题。
a、为什么不推荐学习NIOS II和MicroBlaze等软核?
1、性价比不高,一般的软核性能大概跟Cortex M3或M4差不多,用FPGA那么贵的东西去做一个性能一般的CPU,在工程上是非常不划算的。不如另外加一块M3。
2、加上软核,可能会影响到其它的逻辑的功能。这是在资源并不十分充足的情况下,再加上软核,导致布局布线变得相当困难。
3、软核不开源,出现Bug的时候,不容易调试。
4、工程上很少使用,极有可能派不上用场。
b、为什么不推荐0基础学习ZYNQ或SOC?
1、容易让人有傍同心理。傍同心理是指一个人通过渲染与自己有亲近关系的人的杰出,来掩盖和弥补自己在这方面的不足,从而获得心理上的平衡。自己在学习很厉害的东西,然后也感觉自己很厉害,但这只是错觉而已。
2、入门应该学习尽量简单的东西,要么专心学习ARM,要么专心学习FPGA。这样更容易有成就感,增强信心。
3、ZYNQ和SOC的应用领域并不广,还有很多人没听过这种东西,导致求职的不利。
4、开发工具编译时间长,浪费较多时间。
5、绝大多数工作,都只是负责一方面,也就是说另一方面,很有可能派不上用场。
c、为什么已经存在那么多IP核,仍然需要写HDL?
1、问这种问题的,一般是学生,他们没有做过产品,没有遇到过工程上的问题。
2、IP核并非万能,不能满足所有需求。
3、尽量少用闭源IP核,一旦出问题,这种黑匣子很可能让产品难产。
4、深入理解底一层次,可以更好地使用高一层次。该法则可以适用于所有编程语言。
d、推荐一些微电子的教学视频。
可以参考本博客的《微电子教学视频--Silicon Run等》。
-
FPGA入门
2018-10-04 00:28:27本课程向大家介绍FPGA的基本概念和功能,并结合实际操作讲解实现原理和操作步骤,讲师也会带着大家演示一个实验。 -
FPGA 时钟分频
2017-08-04 21:36:02时钟信号的处理是FPGA的特色之一,因此分频器也是FPGA设计中使用频率非常高的基本设计之一。一般在FPGA中都有集成的锁相环可以实现各种时钟的分频和倍频设计,但是通过语言设计进行时钟分频是最基本的训练,在对时钟...硬件说明
时钟信号的处理是FPGA的特色之一,因此分频器也是FPGA设计中使用频率非常高的基本设计之一。一般在FPGA中都有集成的锁相环可以实现各种时钟的分频和倍频设计,但是通过语言设计进行时钟分频是最基本的训练,在对时钟要求不高的设计时也能节省锁相环资源。在本实验中我们将实现任意整数的分频器,分频的时钟保持50%占空比。
1,偶数分频:偶数倍分频相对简单,比较容易理解。通过计数器计数是完全可以实现的。如进行N倍偶数分频,那么通过时钟触发计数器计数,当计数器从0计数到N/2-1时,输出时钟进行翻转,以此循环下去。2,奇数分频: 如果要实现占空比为50%的奇数倍分频,不能同偶数分频一样计数器记到一半的时候输出时钟翻转,那样得不到占空比50%的时钟。以待分频时钟CLK为例,如果以偶数分频的方法来做奇数分频,在CLK上升沿触发,将得到不是50%占空比的一个时钟信号(正周期比负周期多一个时钟或者少一个时钟);但是如果在CLK下降沿也触发,又得到另外一个不是50%占空比的时钟信号,这两个时钟相位正好相差半个CLK时钟周期。通过这两个时钟信号进行逻辑运算我们可以巧妙的得到50%占空比的时钟。
总结如下:对于实现占空比为50%的N倍奇数分频,首先进行上升沿触发进行模N计数,计数选定到某一个值进行输出时钟翻转,然后经过(N-1)/2再次进行翻转得到一个占空比非50%奇数n分频时钟。再者同时进行下降沿触发的模N计数,到和上升沿触发输出时钟翻转选定值相同值时,进行输出时钟时钟翻转,同样经过(N-1)/2时,输出时钟再次翻转生成占空比非50%的奇数n分频时钟。两个占空比非50%的n分频时钟进行逻辑运算(正周期多的相与,负周期多的相或),得到占空比为50%的奇数n分频时钟。Verilog代码
module divide ( clk,rst_n,clkout); input clk,rst_n; //输入信号,其中clk连接到FPGA的C1脚,频率为12MHz output clkout; //输出信号,可以连接到LED观察分频的时钟 //parameter是verilog里常数语句 parameter WIDTH = 3; //计数器的位数,计数的最大值为 2**WIDTH-1 parameter N = 5; //分频系数,请确保 N < 2**WIDTH-1,否则计数会溢出 reg [WIDTH-1:0] cnt_p,cnt_n; //cnt_p为上升沿触发时的计数器,cnt_n为下降沿触发时的计数器 reg clk_p,clk_n; //clk_p为上升沿触发时分频时钟,clk_n为下降沿触发时分频时钟 //上升沿触发时计数器的控制 always @ (posedge clk or negedge rst_n ) //posedge和negedge是verilog表示信号上升沿和下降沿 //当clk上升沿来临或者rst_n变低的时候执行一次always里的语句 begin if(!rst_n) cnt_p<=0; else if (cnt_p==(N-1)) cnt_p<=0; else cnt_p<=cnt_p+1; //计数器一直计数,当计数到N-1的时候清零,这是一个模N的计数器 end //上升沿触发的分频时钟输出,如果N为奇数得到的时钟占空比不是50%;如果N为偶数得到的时钟占空比为50% always @ (posedge clk or negedge rst_n) begin if(!rst_n) clk_p<=0; else if (cnt_p<(N>>1)) //N>>1表示右移一位,相当于除以2去掉余数 clk_p<=0; else clk_p<=1; //得到的分频时钟正周期比负周期多一个clk时钟 end //下降沿触发时计数器的控制 always @ (negedge clk or negedge rst_n) begin if(!rst_n) cnt_n<=0; else if (cnt_n==(N-1)) cnt_n<=0; else cnt_n<=cnt_n+1; end //下降沿触发的分频时钟输出,和clk_p相差半个时钟 always @ (negedge clk) begin if(!rst_n) clk_n<=0; else if (cnt_n<(N>>1)) clk_n<=0; else clk_n<=1; //得到的分频时钟正周期比负周期多一个clk时钟 end assign clkout = (N==1)?clk:(N[0])?(clk_p&clk_n):clk_p; //条件判断表达式 //当N=1时,直接输出clk //当N为偶数也就是N的最低位为0,N(0)=0,输出clk_p //当N为奇数也就是N最低位为1,N(0)=1,输出clk_p&clk_n。正周期多所以是相与 endmodule
测试文件,进行功能仿真时需要编写testbench测试文件。verilog里的testbench文件和源文件一样也是.v文件,仿真能让我们更直观的观察信号波形,可以先阅读Diamond的使用了解如何使用Diamond中集成的仿真工具。
`timescale 1ns/100ps //仿真时间单位/时间精度,时间单位要大于或者等于时间精度 module divide_tb(); //测试文件也是一个module,因为用于仿真所以无需输入输出信号 reg clk,rst_n; //需要产生的激励信号定义,激励信号需要过程块产生所以定义为reg型变量 wire clkout; //需要观察的输出信号定义,定义为wire型变量 //初始化过程块 initial begin clk = 0; rst_n = 0; #25 //#表示延时25个时间单位 rst_n = 1; //产生了一个初始25ns低电平,然后变高电平的复位信号 end always #10 clk = ~clk; //每隔10ns翻转一次clk信号,也就是产生一个时钟周期20ns的clk,频率为50MHz //module调用例化格式 divide #(.WIDTH(4),.N(11)) u1 ( //#后面的()中为参数传递,如果不传递参数就是所调用模块中的参数默认值 //divide表示所要例化的module名称,u1是我们定义的例化名称,必须以字母开头 .clk (clk), //输入输出信号连接。 .clk表示module本身定义的信号名称;(clk)表示我们在这里定义的激励信号 .rst_n (rst_n), //在testbench里定义的信号名称可以与所要调用module的端口信号名称不同 .clkout (clkout) ); endmodule
引脚分配
时钟为12MHz。你可以通过仿真波形观察分频时钟(注意仿真的时间是有限的,所以分频时钟频率需要较高)。如果我们想通过眼睛观察LED的闪烁,那么需要设置参数N和WIDTH得到一个频率较低的时钟(例如N=12000000,WIDTH=24,分频时钟周期为1秒)。
信号 引脚 clk C1 rst_n L14 clkout N13
修改程序中的分频系数和计数器位数就能够调整LED闪烁速度(注意计数的最大值一定要保证超过分频系数N)。 -
【FPGA入门教程】(一)初识FPGA
2018-05-24 18:43:00FPGA(Field-Programmable Gate Array,现场可编程门阵列),正如其名,FPGA内部有大量的可编程逻辑功能块,使用verilog HDL(硬件描述语言)实现设计。 玩过单片机的小伙伴刚接触FPGA可能会有点困惑,其实FPGA与...FPGA(Field-Programmable Gate Array,现场可编程门阵列),正如其名,FPGA内部有大量的可编程逻辑功能块,使用verilog HDL(硬件描述语言)实现设计。
玩过单片机的小伙伴刚接触FPGA可能会有点困惑,其实FPGA与单片机最大的区别就在于:FPGA设计的是电路,单片机设计的是程序。单片机只有一个CPU在工作时钟的驱动下顺序的执行程序(取指、译码、执行),所以工作速度较慢,而FPGA设计出来的是整个电路逻辑系统,根本不需要单片机这么复杂,所以FPGA的工作速度自然很快,在两者各有各的优势下,单片机主要用于进行相关控制,FPGA多用于信号处理相关。
典型的FPGA原理和结构如下图(注:以Cyclone IV E FPGA芯片为例),主要包括三类基本资源:
- 可编程逻辑功能块(Altera-LE(Logic Element) / Xlinx-Slice)
是实现用户功能的基本单元,多个逻辑功能块通常规则地排成一个阵列结构,分布于整个芯片;
- 可编程内部互连资源
包括各种长度的连线线段和一些可编程连接开关,它们将各个可编程逻辑块或输入/输出块连接起来,构成特定功能的电路。用户可以通过编程决定每个单元的功能以及它们的互连关系,从而实现所需的逻辑功能。
- 可编程输入/输出(I/O)块
完成芯片内部逻辑与外部管脚之间的接口,围绕在逻辑单元阵列四周;
FPGA从简单的逻辑粘合,发展到现在的可编程片上系统,FPGA厂家也在基本的FPGA架构上加入了一些扩展资源,比如时钟管理单元(PLL、DLL)、嵌入式存储器单元和硬件乘法器单元,DSP单元一些高端器件还加入了高速收发器、甚至嵌入式硬核处理器,让FPGA的应用领域更广阔,Cyclone IV E器件加入的扩展资源有:
- PLL锁相环
模拟电路,将输入的周期信号进行分频和倍频,或改变相位,输出一个或多个稳定的时钟信号;
- M9K存储器
嵌入式块RAM,容量大小9Kbit,这些存储器可以被配置成单端口、简单双端口、真双端口RAM、FIFO缓冲器、ROM
- 18*18硬件乘法器
快速进行运算
FPGA中除了三类基本资源和一些扩展资源外,由图中可以看到,FPGA中资源分布也是很精致的:
1、逻辑阵列和M9K存储器交替分布,这样做的优点是缩短数据的传输路径,以获得更优的时序性能;
2、IOEs和PLL单元分布在器件的四周,数据流一般从左侧IO流入,经过处理、运算、存储,通过右侧IO流出,控制信号通过上下IO输入输出;有时候系统需要高质量时钟(比如软核所需工作时钟)通常由PLL单元产生,而这些分布在四周的PLL可以最短时钟源产生工作时钟,另外,PLL属于模拟电路,放在周围更利于生产;
两种主流FPGA的资源情况如下:
Altera Cyclone IV E系列FPGA常见硬件资源详情列表:
Xilinx 7 系列FPGA 硬件资源详情:
最后,放上两张开发板图片,一块是小梅哥基于Cyclone IV EP4CE10的AC620,一块是Digilent基于Xilinx Artix7的Basys3,两块都很精致有木有~
-
FPGA现状
2019-07-16 19:51:42FPGA国内现状 目前中国IC厂商在FPGA这个细分领域和国外巨头的差距远远比其他领域要大。 FPGA技术门槛非常高,核心技术只掌握在及其少数的公司手上,而且xilinx和atlera手头握有6000多项专利,对后进者形成很高... -
FPGA工具
2019-03-05 16:52:50Contents: 1、FPGA编程语言 2、FPGA使用工具 3、接下来的内容 ... 刚接触FPGA,什么都不知道,这个系列就一步步建立起FPGA的知识。... 首先什么是FPGA:(1)PLD,DSP,EDA,FPGA区别,(2)What is FPGA... -
FPGA学习.0——FPGA是什么
2021-02-01 10:12:33FPGA(Field Programmable Gate Array,简称FPGA),译文:现场可编程门阵列,一种主要以数字电路为主的集成芯片,于1985年由Xilinx创始人之一Ross Freeman发明,属于可编程逻辑器件PLD(Programmable Logic Device... -
什么是FPGA?
2019-02-24 21:27:25最近获得去英特尔的FPGA芯片厂参观的机会,我寻思着虽然既然是要去参观,那咱总得对其有所了解吧,不废话了进入正题。 首先,Google启动! FPGA(Field-Programmable Gate Array),即现场可编程门阵列 看不懂,... -
FPGA之道(16)FPGA开发流程之项目方案与FPGA设计方案
2020-02-11 00:20:08FPGA的开发遵循一定的流程,我们要学会站在巨人的肩膀上进行FPGA开发,听取前人的经验,这篇博文摘自《FPGA之道》,一起来学习下作者对于FPGA开发的丰富经验。 -
FPGA概述
2016-10-26 20:59:43FPGA概述 -
FPGA资料
2017-09-08 08:22:59Altera FPGA开发板与xilinx FPGA开发板对比 注:以下对比仅来自各开发板及FPGA的说明文档,如有需更详细精确的数据请直接查看两家fpga厂家的原厂资料。 开发板 FPGA DSP Flip-Flops ... -
FPGA加密
2018-05-17 14:00:20FPGA加密(转) 转载▼FPGA的加密问题其实是一个加密成本和加密级别的折中,总的说来只要FPGA内部带非挥发的Memory块,就可以实现加密功能, 不带非挥发Memory块的FPGA,可以在系统级来解决加密问题:1.高端FPGA如... -
[FPGA]基于FPGA的数字跑表
2020-11-17 20:14:38基于FPGA的数字跑表的设计与实现 一、设计要求 用FPGA设计并实现一个数字跑表,范围为0~59分59.99秒。可以实现数字跑表进行启动、停止计时和显示读数三个操作,可以在数码管上显示读数。 二、设计任务 2.1基本部分 ... -
FPGA LVDS
2019-03-13 14:38:51最近项目需要用到差分信号传输,于是看了一下FPGA上差分信号的使用。Xilinx FPGA中,主要通过原语实现差分信号的收发:OBUFDS(差分输出BUF),IBUFDS(差分输入BUF)。 注意在分配引脚时,只需要分配SIGNAL_P的... -
FPGA IOB
2019-08-22 23:45:40首先了解一下fpga的芯片内部结构: 一个fpga主要是由可编程输入输出单元(图中的IOB模块),可编程逻辑单元(CLB模块),块RAM(图中的BRAM,也属于内嵌硬件),数字时钟管理(DCM,也属于内嵌硬件),还有一些... -
FPGA验证和FPGA测试的区别(ASIC IC FPGA的区别)
2019-07-01 14:15:08从认识FPGA到今天已经四年了。但有些概念我依然模糊。今天被领导问住了,决定好好补一补基础概念。 http://xilinx.eetop.cn/viewthread-339516 先看了遍这里说的。我就把自己理解的放在这里便于记忆,大家觉得说的... -
国产FPGA那家强
2019-05-22 11:23:12国产FPGA那家强 写了这么多FPGA的文章却从来没有涉及过国产FPGA,很多网友甚至不知道还有国产FPGA。下面列举一些国产FPGA,排名不分先后,标题只是噱头。内容如有侵权,请联系小编进行删除。 1 西安智多晶微电子... -
FPGA芯片选型(FPGA初学者的选择)
2018-10-02 17:45:18版权声明:本文为博主原创文章,未经博主允许不得转载。...初学者在学习FPGA的时候,要解决的首要的问题是对数字电路技术基础知识的掌握,然后就是对硬件描述语言的掌握(veirlog或者VHDL)。至于FPG... -
FPGADesigner《FPGA数字信号处理系列》目录与传送门
2018-06-12 14:16:01本系列介绍Alter/Xilinx FPGA中各种数字信号处理算法的实现,学习各种DSP IP核的使用方法,以及DSP算法的设计思路和关键问题。 -
FPGA基础进阶
2019-05-29 12:23:28目录 前言 一、基础篇 二、基础进阶 三、中级篇 ...生活,若没有目标,简直槽糕的一塌糊涂!...本文是导航目录,以记录自己的FPGA学习之路。...主要内容包括:FPGA学习方向、设计规范、常用... 1、个人FPGA学习方向规划... -
xilinxFPGA
2018-10-09 19:17:42FPGA新手,最近在调试xilinx的FPGA,起初采用的是XCKU040FFVA1156芯片的开发板,直接在vivado2017.4上调试,没有出现任何问题,但是可能由于擦写频繁或者是不正当操作,导致芯片的JTAG口出现问题。后面重新采用KC705... -
FPGA云原生 Xilinx FPGA_as_a_Service 概述
2020-08-10 22:44:48FPGA_as_a_Service仓库分为四个子仓库:Xilinx Base Runtime(预装了Xilinx运行时和setup、flash Alveo加速卡的Docker镜像)、Containerization(为多种云供应商提供脚本build Docker镜像)、k8s-fpga-device-plugin... -
FPGA引脚简介
2020-09-07 10:04:08一、 FPGA的硬件结构 这里说的硬件结构主要从FPGA的引脚功能方面描述,FPGA内部的电路逻辑暂不讨论。 FPGA的引脚大致可以分为三类:功能引脚、IO引脚、电源和接地引脚。 1. 功能引脚 FPGA的功能引脚包含了FPGA... -
【FPGA】初探FPGA —— 入门书籍推荐
2020-12-05 00:49:31之前一直想做FPGA的入门博客,无奈计划总是赶不上变化,上一篇FPGA的入门博客是19年10月份写的(ababababa),结果20年都快结束了,才把这一章给续上。(过于卑微)这次是正好在B站上录了类似视频,所以就顺便写出一... -
FPGA顶会
2017-09-18 20:58:38FPGA - 常年在美国,每年2月,偏FPGA基础研究,今年多了不少Application FCCM - 常年在美国,每年5月 FPL - 欧洲巡回,每年9月 FPT - 亚太巡回,每年12月, -
FPGA学习
2016-09-17 00:44:48FPGA:高性能、低能耗、可编程 与其它计算载体如CPU与GPU相比,FPGA具有高性能、低能耗以及可硬件编程的特点。图1介绍了FPGA的硬件架构,每个FPGA主要由三个部分组成:输入输出逻辑,主要用于FPGA与外部其他部件,... -
FPGA——如何学习FPGA
2013-09-30 19:35:05掌握FPGA可以找到一份很好的工作,对于有经验的工作人员,使用FPGA可以让设计变得非常有灵活性。掌握了FPGA设计,单板硬件设计就非常容易(不是 系统设计),特别是上大学时如同天书的逻辑时序图,看起来就非常亲切。... -
举例分析 Intel FPGA 和 Xilinx FPGA 的区别
2020-09-06 11:04:15今天和大侠简单聊一聊 Intel altera 和 Xilinx 的 FPGA 区别,话不多说,上货。 最近有很多人在问,学习FPGA到底是选择 Intel altera 的还是 xilinx 的呢,于是我就苦口婆心的说了一大堆,中心思想大概就是...