从事DFT工作。目前仅限于写一些简单模块。自学的话如何提高verilog编写水平?


对于IC设计(ASIC、FPGA)来讲,重要的是电路结构,而语言只是一个工具。心中对要实现的功能有整体的电路结构框架,而后才是用语言进行实现。Verilog的可综合语法用手指头都能数的过来,最终要的是电路设计思维,心中有电路才是首要的。

其次,无论是Verilog还是SystemVerlog,语法的简单也意味著往往需要重复造轮子的地方太多,动不动代码行数就以千行计,而且往往低级错误一大堆(关键是编译器还不检测)。而读别人的Verilog代码也是一件痛苦的事情。

以图像处理领域为例,往往是演算法设计工程师在matlab或者其他地方实现演算法验证,随后交给设计人员去实现,而针对矩阵运算、计算过程的位宽扩展和截取,对于演算法工程师是不care的,而对于逻辑设计工程师而言这一部分是需要慎之又慎的处理以避免出错,往往这是需要大量时间去处理的。

对于真实的生产环境,资本家是追求高效和快速的,Verilog/SystemVerilog对于新的演算法实现原型验证周期太过于漫长,而HLS则对于面积和性能都无法有效的保证。目前我们团队内部设计主推SpinalHDL,在保证没有性能损失和额外资源消耗的情况下能够进行快速的演算法原型验证,这里贴出一个图像处理的Demo,与诸君共享:

FPGA图像处理——老戏新说?

mp.weixin.qq.com

2021.1.1追更:

趁著假期把近半年笔记整理汇总下,欢迎交流

从Verilog到SpinalHDL?

mp.weixin.qq.com


1. 知道module的基本框架。

2. 知道怎么写assign,和always块。

3. 其他没有了。

编写可综合的verilogHDL就只有这么多了,真的。有了这个砖头和框架,你可以盖高楼。用VerilogHDL做设计不要追求花架子,三板斧足够了。剩下的就是多花心思在电路设计上。

关键的东西来了:

HDL,硬体描述语言,核心是硬体电路。也就是你必须知道你想要做什么样的电路,你的电路结构是怎样的。至少你必须在头脑中把RTL级的行为构建出来。然后再用assign (组合逻辑)加Always (时序逻辑)把你的想法描述出来。

看到规格需求,怎么知道用哪些电路结构来实现它呢? 这个就有东西好学了。电磁学、电路分析、数字逻辑设计、微机原理、数字系统设计。等等逐层递进。这些已经跟「怎样提高Verilog代码编写水平?」关系不大了。跑题。打住。


谢谢邀请!

单纯的说提高verilog编写水平没啥意义,从以下几点分析:

1、从编程语言verilog语法来说,语法简单,易理解,有过c基础的都没啥大问题。做过一个项目就能把整个语法都能用得到。

2、FPGA开发更多的熟练工具,xilinx 的ise和vivado,altera的quartus,模拟工具等。

3、要能看懂原理图,还有一些晶元手册,懂常用介面等。

4、FPGA开发更看重设计,自顶向下设计。如何提高代码编程主要更看重开发过程中的设计,设计好了只管添枝加叶就行了。FPGA常用的语法就那么点,写多了就知道咋回事了。

欢迎留言探讨!


Verilog的编码其实很简单 就两种三种模式

主要是对一些常见的电路结构和模式熟悉


利用实际工程提高是最合适的。但是学生可能没什么机会。个人推荐明德扬大道至简那本书,照著书上的步骤一路下来,实际工作中写verilog工程基本就是那样。


推荐阅读:
相关文章