数字电路基础知识与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两个敏感变量变化,只要有任何输入信号变化,其输出立即发生变化。
热门推荐
高考考前心理调适“秘籍”,心理学教授来分享
四川成都尾号限行规定及常见问题解答
家庭为什么不用直流电?直流电与交流电的区别
Telnet不止于端口测试:探索经典工具的多样化应用
提升人际交往质量的关键:学会说‘不’
铁路安全进校园,霍尔果斯站派出所为沿线中小学“开课”护平安
参访云南省餐饮与美食协会, 探索品尝云南菜的无限魅力
不争《哪吒3》的主题曲,一句话化解导演压力,张碧晨情商真高!
股票交易中的S和B代表什么?
古诗竹石是什么意思
玫瑰花的含义是什么?玫瑰花在不同场合的象征意义是什么?
与生态共繁荣!东北虎豹国家公园虎豹种群加速恢复
研究称外星人早已生活在地球上?哈佛教授笑问“证据在哪里”
弓弩与猎枪在狩猎中的特点、差异和价值
英雄联盟手游嘉文四世出装秘籍:黑色切割者与血手如何打造无敌坦克?
2024年口服美容新原料盘点:从苹果薄荷到红酒多酚
计算机为什么要使用二进制?从电路设计到编程逻辑的全面解析
玉兰品种这么多,你知道该如何分辨吗?
月度工作计划怎么写
可转债量化编程方法是什么
李云霄的甜蜜“苦恼”
广东10家中小银行下调存款利率,未来仍存调降空间
承担养活全家的责任:家庭主妇的艰辛与坚韧
175正常体重多少斤
张伟丽的成功之路:从武术爱好者到UFC冠军
燃油车与新能源车优劣对比及购车建议
冬季冻疮防治:护肤有道,暖意融融
文明之城漳州:在传承创新中打造闽南文化新高地
骶管囊肿治疗新办法
美媒感叹:美欧关系再也回不到从前,欧洲的“美国世纪”结束了