FPGA的多种编程方式

        FPGA发展至今,出现了多种编程方式。从最传统的原理图编程,逐渐演变到硬件描述语言(HDL)编程,其中VHDL和Verilog是主流的编程语言,而后又发展出SystemVerilog,甚至引入了C/C++和Python等高级语言的编程方式。
        原理图编程是最早期的FPGA编程方式,通过绘制电路图的形式来描述电路结构和信号传输关系。这种方式适合简单的电路设计,但复杂电路的可读性和调试难度较高。
        VHDL和Verilog是广泛使用的HDL编程语言,它们可以用于描述数字电路的结构和行为。程序员可以使用这些语言编写模块化的硬件描述代码,然后使用专门的工具进行综合、布局和编程生成FPGA配置文件。
        随着FPGA应用的日益复杂,SystemVerilog逐渐兴起,它是Verilog的扩展,提供了一些高级的特性和抽象,可以更方便地进行复杂系统级设计。
        此外,为了降低FPGA开发的门槛和提高开发效率,一些厂商引入了C/C++和Python等高级语言的编程方式。这种方式允许开发者使用类似软件开发的流程和工具,通过编写高级语言代码,使用特定的编译器或解释器将其转换成FPGA可执行的代码。
        尽管出现了多种编程方式,但Verilog仍然是FPGA编程的主流语言,得到了广泛的支持和应用。不同的编程方式在特定场景下具有各自的优点和适用性,开发者可以根据项目需求、个人经验和团队配合选择合适的编程方式。

 原理图编程:作为FPGA编程中最为底层的编程方式,原理图编程在今日除了“好看”或 者怀念一下74系列逻辑门,已经没有什么用处了。但是作为教学工具,在原理图上绘制74 系列的电路图以及进行仿真确实还是比玩实际的电路方便的多——但是74系列在今天也没有什么用了,等到74系列退出历史舞台,原理图编程也就失去了唯一的价值。那我为什么说他好看呢?因为在图形化编程里面,数据在线条与图形模块流动,对于初学者来说比较方便理清结构,但是,编程软件一般都自带一个 RTL viewer,比这个好用多了,所以也没啥可怀念的价值了。

VHDL,Verilog:VHDL 先于 Verilog 出现,一开始是美国自己搞的,功能强大,严谨——就是太严谨了,学起来比较吃力,于是就有了Verilog……所以Verilog 上手更快,语法自由,但是没有VHDL那么严谨。Verilog主要有两个大版本,95版和01版,以年份命名。其实还有05等小版本,但是没有什么质的改变,也就没有成为主流了。

SystemVerilog:从 01 年后,Verilog不善于做数字芯片仿真验证的缺点逐渐明显,为了大刀阔斧改革,整了个SystemVerilog,兼容以前的Verilog,但是新加了很多语法来适应当前环境的数字芯片开发验证工作,其验证方法思想主要为UVM。这里引用老石关于FPGA入门的观点:1、SystemVerilog是好东西,但是它不适合入门,在学过Verilog以后再来上手。2、至今没有什么比较好的SystemVerilog教程。

C/C++:虽然 HDL一直在发展,但是从二十多年前到现在一直没有质的改变,想要在 FPGA 上用 HDL 实现较为复杂的设计和验证算法仍然十分困难。另一方面,资源已经从一开始的几十几百到几十几百万,量变引起了质变,还能一直用Verilog写下去吗?为了将计算机领域的人才引入到FPGA中,各家开发了HLS(High Level Synthesis,高级层次综合) 方便人才们通过他们所熟悉的 C/C++将那些计算机领域先进的架构带到 FPGA 中,但是,基于FPGA的C/C++开发和原生的C/C++当然不一样,比如不支持动态内存(这本来和 FPGA 架构有冲突),也不支持系统级的操作。所以现在正在逐渐的朝原生的 C/C++开发靠拢,减少别人开发的差次感,这也是近年来FPGA全球大会的主要方向之一。

Python:拿 Xilinx 的 PYNQ 举例,原理大概是板载了一个Python的解码器,再转的——不过现在技术不成熟。不过值得一提的是,PYNQ的编程是基于浏览器的,倒是很方便。

  • 12
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值