本书简要介绍了Verilog硬件描述语言的基础知识,包括语言的基本内容和基本结构 ,以及利用该语言在各种层次上对数字系统的建模方法。书中列举了大量实例,帮助读者掌握语言本身和建模方法,对实际数字系统设计也很有帮助。本书是Verilog HDL的初级读本,适用于作为计算机、电子、电气及自控等专业相关课程的教材,也可供有关的科研人员作为参考书。 目 录 译者序 前言 第1章 简介 1 1.1 什么是Verilog HDL? 1 1.2 历史 1 1.3 主要能力 1 第2章 HDL指南 4 2.1 模块 4 2.2 时延 5 2.3 数据流描述方式 5 2.4 行为描述方式 6 2.5 结构化描述形式 8 2.6 混合设计描述方式 9 2.7 设计模拟 10 第3章 Verilog语言要素 14 3.1 标识符 14 3.2 注释 14 3.3 格式 14 3.4 系统任务和函数 15 3.5 编译指令 15 3.5.1 `define和`undef 15 3.5.2 `ifdef、`else 和`endif 16 3.5.3 `default_nettype 16 3.5.4 `include 16 3.5.5 `resetall 16 3.5.6 `timescale 16 3.5.7 `unconnected_drive和 `nounconnected_drive 18 3.5.8 `celldefine 和 `endcelldefine 18 3.6 值集合 18 3.6.1 整型数 18 3.6.2 实数 19 3.6.3 字符串 20 3.7 数据类型 20 3.7.1 线网类型 20 3.7.2 未说明的线网 23 3.7.3 向量和标量线网 23 3.7.4 寄存器类型 23 3.8 参数 26 第4章 表达式 28 4.1 操作数 28 4.1.1 常数 28 4.1.2 参数 29 4.1.3 线网 29 4.1.4 寄存器 29 4.1.5 位选择 29 4.1.6 部分选择 29 4.1.7 存储器单元 30 4.1.8 函数调用 30 4.2 操作符 30 4.2.1 算术操作符 31 4.2.2 关系操作符 33 4.2.3 相等关系操作符 33 4.2.4 逻辑操作符 34 4.2.5 按位操作符 35 4.2.6 归约操作符 36 4.2.7 移位操作符 36 4.2.8 条件操作符 37 4.2.9 连接和复制操作 37 4.3 表达式种类 38 第5章 门电平模型化 39 5.1 内置基本门 39 5.2 多输入门 39 5.3 多输出门 41 5.4 三态门 41 5.5 上拉、下拉电阻 42 5.6 MOS开关 42 5.7 双向开关 44 5.8 门时延 44 5.9 实例数组 45 5.10 隐式线网 45 5.11 简单示例 46 5.12 2-4解码器举例 46 5.13 主从触发器举例 47 5.14 奇偶电路 47 第6章 用户定义的原语 49 6.1 UDP的定义 49 6.2 组合电路UDP 49 6.3 时序电路UDP 50 6.3.1 初始化状态寄存器 50 6.3.2 电平触发的时序电路UDP 50 6.3.3 边沿触发的时序电路UDP 51 6.3.4 边沿触发和电平触发的混合行为 51 6.4 另一实例 52 6.5 表项汇总 52 第7章 数据流模型化 54 7.1 连续赋值语句 54 7.2 举例 55 7.3 线网说明赋值 55 7.4 时延 55 7.5 线网时延 57 7.6 举例 57 7.6.1 主从触发器 57 7.6.2 数值比较器 58 第8章 行为建模 59 8.1 过程结构 59 8.1.1 initial 语句 59 8.1.2 always语句 61 8.1.3 两类语句在模块中的使用 62 8.2 时序控制 63 8.2.1 时延控制 63 8.2.2 事件控制 64 8.3 语句块 65 8.3.1 顺序语句块 66 8.3.2 并行语句块 67 8.4 过程性赋值 68 8.4.1 语句内部时延 69 8.4.2 阻塞性过程赋值 70 8.4.3 非阻塞性过程赋值 71 8.4.4 连续赋值与过程赋值的比较 72 8.5 if 语句 73 8.6 case语句 74 8.7 循环语句 76 8.7.1 forever 循环语句 76 8.7.2 repeat 循环语句 76 8.7.3 while 循环语句 77 8.7.4 for 循环语句 77 8.8 过程性连续赋值 78 8.8.1 赋值—重新赋值 78 8.8.2 force与release 79 8.9 握手协议实例 80 第9章 结构建模 83 9.1 模块 83 9.2 端口 83 9.3 模块实例语句 83 9.3.1 悬空端口 84 9.3.2 不同的端口长度 85 9.3.3 模块参数值 85 9.4 外部端口 87 9.5 举例 89 第10章 其他论题 91 10.1 任务 91 10.1.1 任务定义 91 10.1.2 任务调用 92 10.2 函数 93 10.2.1 函数说明部分 93 10.2.2 函数调用 94 10.3 系统任务和系统函数 95 10.3.1 显示任务 95 10.3.2 文件输入/输出任务 97 10.3.3 时间标度任务 99 10.3.4 模拟控制任务 99 10.3.5 定时校验任务 100 10.3.6 模拟时间函数 101 10.3.7 变换函数 102 10.3.8 概率分布函数 102 10.4 禁止语句 103 10.5 命名事件 104 10.6 结构描述方式和行为描述方式的 混合使用 106 10.7 层次路径名 107 10.8 共享任务和函数 108 10.9 值变转储文件 110 10.9.1 举例 111 10.9.2 VCD文件格式 112 10.10 指定程序块 113 10.11 强度 114 10.11.1 驱动强度 114 10.11.2 电荷强度 115 10.12 竞争状态 116 第11章 验证 118 11.1 编写测试验证程序 118 11.2 波形产生 118 11.2.1 值序列 118 11.2.2 重复模式 119 11.3 测试验证程序实例 123 11.3.1 解码器 123 11.3.2 触发器 124 11.4 从文本文件中读取向量 126 11.5 向文本文件中写入向量 127 11.6 其他实例 128 11.6.1 时钟分频器 128 11.6.2 阶乘设计 130 11.6.3 时序检测器 132 第12章 建模实例 136 12.1 简单元件建模 136 12.2 建模的不同方式 138 12.3 时延建模 139 12.4 条件操作建模 141 12.5 同步时序逻辑建模 142 12.6 通用移位寄存器 145 12.7 状态机建模 145 12.8 交互状态机 147 12.9 Moore有限状态机建模 150 12.10 Mealy型有限状态机建模 151 12.11 简化的21点程序 153 附录 语法参考 157 参考文献 172
2022-05-05 20:21:07 3.98MB Verilog HDL
1
Verilog HDL应用程序设计实例精讲
2022-05-01 12:16:59 44.62MB Verilog HDL
1
推荐-Verilog HDL高级数字设计_[美 M D.Ciletti著][Advaned digistal design with Verilog]
2022-04-27 17:17:18 132.6MB 计算机
1
文中的第一个模块为通用的偶分频模块,第二个模块为通用的奇分频模块,2个模块分频占空比都为1:1,使用时只需将相应模块中parameter DIV_N = N; 中的N改为想要的分频数即可。
2022-04-26 13:59:59 14KB Verilog HDL 奇偶分频器
1
采用Verilog HDL语言实现阵列乘法器和Booth编码乘法器、电子技术,开发板制作交流
1
Matlab代码verilog Verilog-HDL 该存储库包含有关Verilog HDL的程序 学习Verilog-HDL的资源 Verilog-HDL简介 Verilog是一种硬件描述语言(HDL)。 它是用于描述数字系统(如网络交换机或微处理器或存储器或触发器)的语言。 这意味着,通过使用HDL,我们可以描述任何级别的任何数字硬件。 HDL中描述的设计与技术无关,非常易于设计和调试,并且通常比示意图更有用,特别是对于大型电路。 为什么选择HDL? 我们设计硬件来解决特定问题。 通常,我们首先以简单的语言(例如英语)描述这些问题,然后使用诸如C,Python或Matlab之类的语言将其提炼为数学上准确的陈述。 这些是高级语言-它们提供了数据类型和命令的高级抽象,使对问题的建模变得容易。 但是,它们不能很好地转换为硬件描述。 这主要是因为: 他们没有时间观念或一系列事件接连发生 他们不对并发或同时发生的多个事件建模 他们通常假定诸如从某处获取数据并对其进行操作之类的操作是基本操作,而复杂性则隐藏在简单指令之后。 但是,硬件要求将这些操作中的每一个都明确化。 因此,硬件描述语言(H
2022-04-19 11:13:35 18KB 系统开源
1
verilog_snippets VS Code中将使用Verilog HDL的一些代码片段。 我按照自己喜欢的方式对其进行了编辑。 让我知道是否忘记添加内容。
2022-04-17 22:58:56 2KB
1
5.4 结构化建模具体实例对一个数字系统的设计,我们采用的是自顶向下的设计方式。可把系统划分成几个功能模块,每个功能模块再划分成下一层的子模块。每个模块的设计对应一个module ,一个module 设计成一个verilog HDL 程序文件。因此,对一个系统的顶层模块,我们采用结构化的设计,即顶层模块分别调用了各个功能模块。下面以一个实例(一个频率计数器系统)说明如何用HDL进行系统 设计。在该系统中,我们划分成如下三个部分:2输入与门模块,LED显示模块,4位计数器模块。系统的层次描述如下: TOP CNT_BCD (CNT_BCD.v) Sub AND2 CNT_4b HEX2LED
1
硬件描述语言 是硬件设计人员和电子设计自动化 工具之间的界面 其主要目的是用来设计文件 建立电子系统行为级的仿真 模型 即利用计算机的巨大能力对用 或 建模的复杂数字逻辑进行仿真 然后再自动综合以生成符合要求且在电路结构上可以实现的数字逻辑网表 ??????? 根据 网表和某种工艺的器件自动生成具体电路 然后生成该工艺条件下这种具体电路的延时模
2022-04-12 22:34:19 19.93MB FPGA VHDL Verilog HDL
1
Verilog HDL程序设计与实践详解
2022-04-11 14:07:16 14.01MB fpga开发