问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

数字电路基础知识与Verilog入门

创作时间:
作者:
@小白创作中心

数字电路基础知识与Verilog入门

引用
CSDN
1.
https://m.blog.csdn.net/t15061113172/article/details/103988141/

数字电路是现代电子系统的基础,而Verilog硬件描述语言则是设计和实现数字电路的重要工具。本文将从数制与编码、逻辑代数以及Verilog语言基础三个方面,为读者提供一个全面的入门指南。

1. 数制与编码

在Verilog中表示二进制数时,需要指定其长度和标识。例如,8'b1000表示8位的二进制数1000,8'd8表示十进制数8,8'h8表示十六进制数8。需要注意的是,默认的位数是32位,默认的进制是十进制。

1.1 格雷码

格雷码又称为循环二进制码或反射二进制码,其基本特点是任意两个相邻的代码只有一位二进制数不同。这种特性在某些特定情况下非常有用,可以避免电路状态错误或输出错误的结果。

1.2 二进制码和格雷码的相互转换

  • 二进制码转换为格雷码:最左边一位保持不变,从右边倒数第一位起,依次与左边一位进行异或操作,作为该位对应格雷码的值。
  • 格雷码转换为二进制码:最左边一位保持不变,从左边第二位起,依次与左边一位进行异或操作,作为该位对应二进制码的值。

2. 逻辑代数

Verilog HDL内置了26个基本元件,其中14个是门级元件,12个为开关级元件。常见的门电路包括与门(and)、与非门(nand)、或门(or)、或非门(nor)、非门(not)、异或门(xor)和同或门(nxor)。

3. 硬件描述语言(Verilog)

模块是Verilog HDL的基本描述单位,用于描述每个设计的功能或结构,以及与其他模块通信的外部接口。一个模块可以包括整个设计模块或者设计模型的一部分,模块的定义总是从关键词module开始,以关键词endmodule结尾。

模块结构

  • 模块名:模块唯一的标示符,括号中以逗号分隔列出的端口名是该模块的输入、输出端口;
  • 端口类型说明:input(输入)、output(输出)、inout(双向端口)三种类型;
  • 参数定义:将常量用符号常量替代,以增加程序的可读性和可修改性;
  • 数据类型定义:用来指定模块内所用的数据对象是寄存器类型(reg等)还是连线类型(wire等)。

关于reg和wire的使用以及always @(A,B)

  • 在Verilog中,任何过程赋值的左侧变量必须声明为reg,除此之外使用的变量必须声明为wire;
  • Verilog区分reg和wire的原因与数据类型检查有关,这样能保证设计者无法对同一变量使用两种不同类型赋值;
  • always @(A,B)表示不断循环等待A和B两个敏感变量变化,只要有任何输入信号变化,其输出立即发生变化。
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号