Verilog从入门到放弃,你到哪个阶段了?

2019-10-29 17:08:36 浏览数 (1)

以下以Verilog在数字设计中的应用为例:

数字逻辑电路基础

Verilog是硬件描述语言,“硬件”是基础,数字、逻辑、电路,基础一定要学好。

a. 数字的进制:熟悉二进制、八进制、十进制、十六进制换算,BCD,格雷码转换 b. 逻辑运算:与,或,非。 c 组合逻辑电路:3-8译码器,编码器,比较器,加法器,理解竞争与冒险 d. 时序逻辑电路:RS触发器,D触发器,计数器 e. 存储器:ROM,RAM

Verilog基础

a. 掌握Verilog常用语法:注意不要在Verilog语法本身花费过多时间,要结合实际设计使用。 b. 使用Verilog搭建基本组合逻辑、时序逻辑电路; c. 使用Verilog搭建基本testbench d. 使用仿真器进行功能仿真,使用综合器查看对应的硬件结构

模块级Verilog设计

a. 根据设计需求撰写设计文档,包括模块架构框图,接口定义,详细设计如数据流程、状态转移以及关键逻辑描述。 b. 根据设计文档完成Verilog代码设计 c. 完成功能验证 d. FPGA或芯片综合流程

这一阶段会持续很长时间。

模块的复杂度各有不同,比如电平转换,数据流控,数字信号处理算法,接口协议,总线桥接等。需要在不同的设计中不断积累经验。

系统级Verilog设计

a. 复杂IP设计 b. SoC集成

怎样提高Verilog代码质量

a. 硬件是什么 c. 面积、时序、功耗 b. 可综合 d. 可测试 e. 可靠性 f. 可重用

怎样减少(放弃)写Verilog?

a. 代码重用 b. 代码自动生成 c. 授权他人 d. 外部采购

Verilog的生产力工具与环境

1. 文本编辑器

Verilog代码也是纯文本,需要一个好用的编辑器。文本编辑器的圣战请自行搜索。

a. 基本的verilog语法高亮,支持自动补全,代码折叠

b. 支持代码模板或者可扩展插件:如常用代码段生成,端口定义,自动例化等

c. 跨平台:一次学习,长久受益

选定一个,用熟用好。

2. 版本控制工具

写的每一段Verilog代码都应该使用版本控制。

学会使用svn,git。

推荐使用github,或者国内的一些开源平台,比如码云(gitee.com),可以跨平台代码同步。

3. 文本比较器

不同代码版本之间的比较,在追溯问题时经常用到。

可以使用svn/git自带的比较合并工具,也可以使用操作系统下的diff工具。

或者选择专用可视化文本比较工具,比如Beyond Compare,Araxis Merge。

4. 操作系统和EDA环境

参考“Verilog与EDA工具”列表,除了FPGA工具和仿真器之外,绝大部分EDA工具智能在Linux(unix)环境下运行。

a. 可以独立安装linux,可以装linux/win双系统,可以在win下面使用虚拟机。

b. Linux版本建议Ubuntu 16.04 LTS或者Centos 7

c. EDA相关软件(以后再聊)

d. 在windows环境下推荐:Win7/10 64bit 文本编辑器 文本比较器 SVN/git Questasim仿真器 FPGA工具,也可以使用win10 bash或者git bash模拟部分linux命令操作。

0 人点赞