1. 介绍
本篇blog旨在描述数字芯片&FPGA初学者所必须的基本技能,有需要的同学自取哈。
2. 技能篇
首先是需要掌握的技能
● Verilog
属于硬件描述语言的一种。可用于数字电子系统设计,进行数字逻辑系统的仿真验证、时序分析、逻辑综合,是目前应用最广泛的一种硬件描述语言。
● 数字电路基础
● 静态时序分析(Static Timing Analysis, STA)
静态时序分析(Static Timing Analysis, STA):内容导航
● 亚稳态设计
● 低功耗设计
● 时钟复位设计
○ Systemverilog
以Verilog语言为基础进行拓展,引入了面向对象设计技术,可更加灵活的进行设计,以满足数字验证的各种需求。
作为设计人员,可以稍微了解SV的基础语法,可以方便TB文件编写。
● Linux
数字IC基本是在Linux环境下进行设计和验证,因此Linux基本操作必不可少!
● TCL
一种脚本语言,是大多数EDA工具的交互命令语言,所以跨平台复用性高。
● 编译仿真工具 VCS & Verdi
学会了语言和框架,就需要一个软件平台来仿真,VCS和Verdi是Linux环境下常用的仿真编译工具。
基于Makefile实现VCS的编译、仿真与Verdi的波形查看
○ 编译仿真工具 Questasim
是Windows环境下常用的仿真编译工具
● FPGA开发环境 Vivado
最常用的FPGA开发环境,FPGA从业者必学
● 高层次综合 High-Level Synthesis(HLS)
● 代码检查/跨时钟域检查工具 Spyglass
● 逻辑综合工具 Design Compile(DC)
● Python/C++
使用UVM搭建的验证平台中,参考模型reference model需要使用C/C++编写的模块。
对于算法类的数据仿真,常使用Python/MATLAB设计参考模型。
○ SVN
一种版本控制工具,有需要者自取。
3. 技术篇
在学习完上述基本技能后,接下来就要根据具体的工作场景和项目要求进行针对性的学习,包括总线接口、技术协议等。
● RTL Design Flow
包括设计过程中的技巧和规范
● RTL Design Spec
设计文档内容,实际设计过程中可按照该文档顺序进行设计。
● RTL Project Directory
工程目录如何组织
● RTL Coding Tech
在进行编码时的注意事项和使用技巧
● RTL 算法设计 & 时序设计
多个设计实例,包括算法类,即数学算法在RTL上的实现,和时序类,即乒乓、平行、流水等时序结构
● 计算机体系结构
作为IC设计者必须要熟悉计算机组成与体系结构
● 标准总线接口协议
包括常见的总线标准和接口协议。标准握手时序指的是FIFO、RAM握手以及跨时钟域握手展宽法
● Memory
常用存储器件的介绍、原理和控制方式
● Processor
处理器的相关内容
● FPGA
4. 参阅资料
【数字IC精品文章收录】近500篇文章|学习路线|基础知识|接口|总线|脚本语言|芯片求职|安全|EDA|工具|低功耗设计|Verilog|低功耗|STA|设计|验证|FPGA|架构|AMBA|书籍|