前言
学完了uvm、sv,通过ahb2apb桥的验证,对uvm框架有了较为深刻的认识,但是验证需要明白设计的一些东西。虽然之前学习过Verilog,但那真的只是走马观花,没有养成任何编写代码的习惯,故后面打算深入学习verilog和设计方面的基础。
这篇博客将基于下面这本书进行总结。
可能大多数是以问题的形式出现的,希望可以引起思考!
第1章 Verilog HDL入门简介
问题导入:
- Verilog HDL与数字电路有什么联系?
- 使用Verilog HDL编写的代码能用在哪里?
- 采用Verilog HDL进行电路设计与传统数字电路设计在流程上是如何对应的?
主要内容:
- 集成电路设计的基本流程
- 数字电路设计示例
- Verilog HDL电路设计示例
第2章 Verilog HDL门级建模
问题导入:
- Verilog HDL门级建模的基本语法是什么?
- Verilog HDL语法中包含哪些基本的逻辑门?
- 如何连接所调用的逻辑门?
- 层次化设计方法是什么?
主要内容:
- Verilog HDL门级建模
- 层次化设计
第3章 Verilog HDL数据流级建模
问题导入:
- 数据流级建模的基本语法及关键字是什么?
- 操作数的类型有哪几种?各有什么特点?
- 操作符的类型有哪些?都是如何运算的?
主要内容:
- 数据流级建模基本语法
- 操作数与操作符
第4章 Verilog HDL行为级建模
问题导入:
- initial 和 always 各自的特点是什么?
- 顺序块和并行块的特点是什么?
- 条件分支语句和循环语句与C语言有什么相似和不同?
- 阻塞性赋值和非阻塞性赋值都使用在哪类电路的建模中?注意事项是什么?
主要内容:
- 两种行为级建模结构
- 顺序块和并行块
- 条件语句、分支语句、循环语句
- 阻塞赋值与非阻塞赋值
第5章 任务、函数与编译指令
问题导入:
- 任务的基本结构是怎样的?
- 函数的基本结构是怎样的?
- 任务和函数在使用方法上、基本结构上有什么区别?
- 任务和函数在代码中出现的位置是怎样的?
- 编译指令的出现位置在哪里?有什么用?
主要内容:
- 任务与函数的声明和使用
- 编译指令的使用
第6章 Verilog HDL测试模块
问题导入:
- 测试模块的功能和结构是怎样的?
- 测试模块所需的各种信号是如何生成的?
- 在选择测试信号的时候应该有哪些考虑?
主要内容:
- 时钟信号与复位信号的生成
- 随机激励的产生
- 仿真中信号的控制
- 代码覆盖
第7章 可综合模型设计
问题导入:
- 综合的过程中到底发生了什么?
- 延迟是如何被赋值的?
- 那些语句是可综合的,那些语句是不可综合的?
- 常见代码的书写要求有哪些?
主要内容:
- 综合过程与延迟时间
- 代码风格问题
第8章 有限状态机设计
问题导入:
- moore型状态机和mealy型状态机的区别是什么?
- 常见的状态机的写法是什么?
- 常见的编码状态有哪几种,各有什么特点?
主要内容:
- moore型状态机与mealy型状态机的设计
- 多段式状态机的设计
- 状态码的介绍
第9章 常见功能电路的HDL模型
问题导入:
- 在模块中如何看出是同步信号还是异步信号?
- 电路中的二进制数值会对设计产生什么影响?
- 你是否把看到的示例代码修改成你认为更合理的形式?
主要内容:
- 常见电路的HDL设计
第10章 完整的设计实例
问题导入:
- 是否从实际案例中理解整个设计流程的步骤与设计思路,为自己今后设计所用?
主要内容:
- 异步FIFO
- 三角函数计算器
- 简易CPU模型
第11章 实验
暂略
第12章 课程设计
暂略