数字IC设计方法学:内容导航


1. 介绍

本篇blog旨在描述数字芯片&FPGA初学者所必须的基本技能,有需要的同学自取哈。

2. 技能篇

首先是需要掌握的技能

● Verilog

属于硬件描述语言的一种。可用于数字电子系统设计,进行数字逻辑系统的仿真验证、时序分析、逻辑综合,是目前应用最广泛的一种硬件描述语言。

Verilog HDL

● 数字电路基础

● 静态时序分析(Static Timing Analysis, STA)

静态时序分析(Static Timing Analysis, STA):内容导航

● 亚稳态设计

组合逻辑中的 竞争冒险问题

时序逻辑中的 亚稳态问题

● 低功耗设计

RTL级低功耗设计

● 时钟复位设计

○ Systemverilog

以Verilog语言为基础进行拓展,引入了面向对象设计技术,可更加灵活的进行设计,以满足数字验证的各种需求。

作为设计人员,可以稍微了解SV的基础语法,可以方便TB文件编写。

SystemVerilog HVL:简介及内容导航

● Linux

数字IC基本是在Linux环境下进行设计和验证,因此Linux基本操作必不可少!

Linux:目录与文件处理命令

Linux:系统操作命令

Linux:Vim编辑器

● TCL

一种脚本语言,是大多数EDA工具的交互命令语言,所以跨平台复用性高。

Tool Command Language(TCL)

● 编译仿真工具 VCS & Verdi

学会了语言和框架,就需要一个软件平台来仿真,VCS和Verdi是Linux环境下常用的仿真编译工具。

基于Makefile实现VCS的编译、仿真与Verdi的波形查看

○ 编译仿真工具 Questasim

是Windows环境下常用的仿真编译工具

Questasim使用入门指导

● FPGA开发环境 Vivado

最常用的FPGA开发环境,FPGA从业者必学

FPGA开发环境 Vivado

● 高层次综合 High-Level Synthesis(HLS)

● 代码检查/跨时钟域检查工具 Spyglass

● 逻辑综合工具 Design Compile(DC)

● Python/C++

使用UVM搭建的验证平台中,参考模型reference model需要使用C/C++编写的模块。

C++基础与STL

对于算法类的数据仿真,常使用Python/MATLAB设计参考模型。

○ SVN

一种版本控制工具,有需要者自取。

Linux下面SVN 命令详解

SVN常用命令详解

3. 技术篇

在学习完上述基本技能后,接下来就要根据具体的工作场景和项目要求进行针对性的学习,包括总线接口、技术协议等。

● RTL Design Flow

包括设计过程中的技巧和规范

● RTL Design Spec

设计文档内容,实际设计过程中可按照该文档顺序进行设计。

RTL Design Spec

● RTL Project Directory

工程目录如何组织

RTL Project Directory

● RTL Coding Tech

在进行编码时的注意事项和使用技巧

RTL Coding Tech

● RTL 算法设计 & 时序设计

多个设计实例,包括算法类,即数学算法在RTL上的实现,和时序类,即乒乓、平行、流水等时序结构

RTL 算法设计 & 时序设计:内容导航

● 计算机体系结构

作为IC设计者必须要熟悉计算机组成与体系结构

计算机组成原理

● 标准总线接口协议

包括常见的总线标准和接口协议。标准握手时序指的是FIFO、RAM握手以及跨时钟域握手展宽法

标准握手时序

标准总线接口协议

● Memory

常用存储器件的介绍、原理和控制方式

Memory:内容导航

● Processor

处理器的相关内容

● FPGA

《从底层结构开始学习FPGA》目录与传送门

4. 参阅资料

【数字IC精品文章收录】近500篇文章|学习路线|基础知识|接口|总线|脚本语言|芯片求职|安全|EDA|工具|低功耗设计|Verilog|低功耗|STA|设计|验证|FPGA|架构|AMBA|书籍|

ARM Developer

ASIC/SOC设计工程师学习路线

如何学习FPGA

9年FPGA工作经验,转行了,苦海无涯……

牛客网

菜鸟教程 - 学的不仅是技术,更是梦想!

猜你喜欢

转载自blog.csdn.net/Starry__/article/details/129088113