大话Verilog-Verilog入门(三)

转至我的公众号:https://mp.weixin.qq.com/s/sVAe29CxV_NJ1N3dIULc-A

上一篇聊了一些基础的门电路。也为今天介绍一位重磅的帅气先生给大家认识,算是做了一丢丢的准备了。

模块(block)先生

最近一直项目缠身,有时候,打开网页来写点什么呢,突然又被其他事情给打断了。今日脑袋瓜突然冒出了模块先生的大概模样,想了想,又打开了网页,跟大家聊聊模块先生的那些事儿。
模块先生,他会的技能和小时候数学书小明整天干的事情有点类似,小明有一个大箱子,大箱子里面有6个箱子,6个箱子里面又各有2个箱子。而我们的模块先生就是这些箱子吧了,只不过,这些小箱子拥有了各自的名字吧了。不过所有的模块先生均属于同一物种,因为他头顶module,脚踩endmodule,这个很多时候,也作为识别他是否是模块先生的一个重要标志。
下面我们正式的来介绍一位之前出现过的,叫做Verilog1的模块先生。
这里写图片描述

Verilog1模块先生的肖像图就如上面所示了,只是他和我们一般的肖像图不是特别一样,他把他会的特长什么也花了上去。
图中我们可以看出module后面带的就是模块的名字,括号里则将所有的输入口和输出口(A,B,Y)都显露了出来,一般的话我们的模块先生会有两个比较鲜明的特征的,刚刚介绍的接口(A,B,Y),一个则是描述逻辑功能(and(Y,A,B))了,往往知道了这个几个特征后,你对模块先生的了解也就知道了个一二三了。
图中的Verilog1模块先生代表着一个与门的功能。
我们将Verilog1模块先生的部分代码做稍稍的修改,他便可以作为其他用处了。
这里写图片描述

这里我们增加了一个输入口给Verilog1模块先生,这样他便成了一个二选一选择器了。

到这里大家可能已经对模块先生有个基本的认识了。对于模块先生的其他代码不认识没关系,反正也才聊到第三篇而已。
这个时候,只要以后,大家在路上碰到了我们的模块先生,只要认得他便可了,知道他的名字和简单的功能已经足够了。

模块先生还会在测试的时候出现

只要将上面Verilog1模块先生的输入输出口,每个口排特定的数字兵去,我们的输入输出口便有了限定的意义了。
而这个数字则成了这个输入口的赋值,这样,这个模块先生变成了我们的测试平台了。
可是为什么我们需要讲模块先生转换为测试平台呢,好好得当个美男子不好吗?
因为我们将数字给了这些输入口后,相当于我们布线了,加上一些数字的延迟,这时候我们的输出口则成了布线后输出(布线后仿真)了,而布线后仿真的结果是和实际电路的结果是很相似的。
这样,我们就可以迅速的在电脑将各个模块先生进行组合形成一个小型功能进行仿真了。

如果你觉得得笔者的文章对你有帮助,赏个鸡腿吃吃

这里写图片描述

欢迎关注我的公众号

这里写图片描述

大话Verilog-Verilog入门(一)
https://mp.weixin.qq.com/s/x-KlnwaXjKi76iUcOUU6eg

大话Verilog-Verilog入门(一)
https://mp.weixin.qq.com/s/8RDze85pKlU8V75TriNlLQ

電子製造工廠如何產出一片電路板(PCBA)
https://mp.weixin.qq.com/s/p78qE-PPNgbePwu-WZVqfg

目 录 译者序 前言 第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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值