第一篇 实验与练习 1
引言 1
实验一 简单的组合逻辑设计 3
实验二 简单时序逻辑电路的设计 4
实验三 利用条件语句实现较复杂的时序逻辑电路 5
实验四 设计时序逻辑时采用阻塞赋值与非阻塞赋值的区别 7
实验五 用always块实现较复杂的组合逻辑电路 9
实验六 在Verilog HDL中使用函数 11
实验七 在Verilog HDL中使用任务 13
实验八 利用有限状态机进行复杂时序逻辑的设计 15
实验九 利用状态机的嵌套实现层次结构化设计 19
实验十 通过模块之间的调用实现自顶向下的设计 24
实验十一 简单卷积器的设计 28
实验十二 利用SRAM设计一个FIFO存储器(先进先出存储器) 50
第二篇 Verilog HDL语法参考手册 63
第一章 关于Verilog HDL的说明 63
一、关于IEEE1364标准 63
二、Verilog HDL简介 63
三、Verilog语法快速参考 64
四、编写Verilog HDL源代码的标准 66
五、设计流程 68
第二章 Verilog语言功能与系统任务、函数 69
一、Verilog HDL语句与常用标志符(按字母顺序排列) 69
Always 声明语句 69
Assign 连续赋值声明语句 71
Begin 声明语句 72
Case 声明语句 73
Comment 注释语句 75
Defparam 定义参数声明语句 76
Delay 时延 77
Disable 禁止 78
Errors 错误 79
Event 事件 79
Expression 表达式 81
For 循环声明语句 82
Force 强迫赋值 83
Forever 声明语句 84
Fork 声明语句 85
Function 函数 86
Function Call 函数调用 87
Gate 门 87
真值表 88
IF 条件声明语句 91
Initial 声明语句 92
Instantiation 实例引用 93
Module 模块定义 95
Name 名字 97
Hierarchical Names 分级名字 98
Upwards Name Referencing 向上索引名 98
Net 线路连接 99
Number 数 101
Operators 运算符 104
Parameter 参数 106
PATHPULSE $ 路径脉冲参数 107
Port 端口 108
Procedural Assignment 过程赋值语句 109
Procedural Continuous Assignment 过程连续赋值语句 111
Programming Language Interface 编程语言接口 112
Register 寄存器 113
Repeat 重复执行语句 115
Reserved Words 保留字 115
Specify 指定的块延时 116
Specparam 延时参数 119
Statement 声明语句 120
Strength 强度 121
String 字符串 123
Task 任务 124
Task Enable 任务的启动 127
Timing control 定时控制 128
User Defined Primitive 用户自定义原语 130
While 条件循环语句 133
Compiler Directives 编译器指示 134
Standard Compiler Directives 标准的编译器指示 134
Nonstandard Compiler Directives 非标准编译器指示 135
二、系统任务和函数(System Task and Function) 138
1.标准的系统任务和函数(Standard System Task and Function) 138
2.随机数产生函数 140
3.指定块内的定时检查系统任务(Specify Block Timing Checks) 140
4.储存数值变化的系统任务(Value Change Dump Tasks) 140
5.非标准的系统任务和函数(Nonstandard System Task and Function) 141
三、常用系统任务和函数的详细使用说明 143
1.标准的系统任务和函数(Standard System Task and Function) 143
$display和$write 143
$fopen和$fclose 144
$monitor等 145
$readmemb和$readmemh 146
$strobe 147
$timeformat 148
2.随机模(Stochastic Modeling) 149
$q_initialize 149
$q_add 149
$q_remove 149
$q_full 149
$q_exam 149
$setup 152
$width 152
$skew 152
$setuphold 152
$period 152
$recovery 152
$nochange 152
$hold 152
3.定时检查(Timing Checks) 152
4.储存数值变化的系统任务(Value Change Dump Tasks 153
$dumpfile 153
$dumpvars 154
$dumpoff 154
$dumpon 154
$dumpall 154
$dumplimit 154
$dumpflush 154
四、命令行的可选项(Command Line Options) 154