《EDA技术实用教程(第六版(黄继业, 潘松))》学习笔记——第三章

《EDA技术实用教程(第六版)》学习笔记——第三章

1、半加器的Verilog的描述

  • 半加器的逻辑表述、半加器的电路结构、真值表、时序波形:
    在这里插入图片描述
  • 半加器的Verilog描述:

在这里插入图片描述

  • h_adder是模块名,是设计者为其设计的模块所取的名字。
  • h_adder旁的括号及其内容称为“端口表”,括号中的内容就是此模块的所有端口信号名。
  • assign引导的赋值负责描述模块内部的逻辑功能和电路结构。
  • assign引导的赋值语句属于并行赋值语句,无论有多少行语句,都是同时执行的,与语句的前后次序无关。

1、1模块语句及其表达方式

在这里插入图片描述

  • 任一可综合的最基本的模块都必须以关键词module开头。
  • 模块名最好根据相应电路的功能来确定。如4位二进制计数器用counter4b。
  • 模块端口列表中须列出此模块的所有输入、输出或双向端口名,端口名间用逗号分开,括号外加 分号。
  • endmodule是模块结束语句关键词,旁边不加任何标点符号。对模块端口及其功能的描述语句都
    必须放在模块语句module_endmodule之间。

1、2端口语句、端口信号名和端口模式

在这里插入图片描述

  • 输入端口:input
  • 输出端口:output
  • 双向端口:inout 使用比较复杂,后续有专门章节讲述,在未理解前,不要轻易使用
  • 最后一种端口描述方法是端口信号的逻辑矢量位表达方式,其中的msb和lsb分别是信号量的最高和最低位数。output [3:0] C,D; // C、D均为4位输出端口。

1、3逻辑操作符

Verilog的逻辑操作符大部分与C语言一致,比如:

  • 逻辑按位与: &
  • 逻辑按位或: |
  • 逻辑按位异或:^
  • 逻辑按位取非:~

但Verilog也有自己的扩展,比如

  • 逻辑按位 与非 ~&
  • 逻辑按位 或非 ~|
  • 逻辑按位 同或 ~^

1、4连续赋值语句

在这里插入图片描述
在这里插入图片描述

  • 当等式右端的驱动表达式(赋值源)中任一信号发生变化时,此表达式即被重新计算一遍。
  • assign语句是Verilog的并行语句,模块中所有的assign语句同时执行,语句的前后顺序无关;
  • -加入[延时],表示经过指定延时后再赋值,
  • 但这个延时值在综合器中是被忽略的,不参与综合。
  • 只对仿真器有效
    在这里插入图片描述
  • 此句表示,仿真的基本时间单元是 10ns,仿真时间的精度是 100ps。在这个时间划分单元下,语句assign #6 R1=A&B”在执行后,一旦计算出A&B的值还要再等待6个时间单元也就是60ns后才将此值赋给 R1。

1、5关键字

  • 指verilog语言中预定义的有特殊含义的英文词语。input、output、module、assign、endmodule
    关键词必须小写

1、6标识符

  • 设计者在verilog程序中自定义的,用于标识不同名称的词语。例如模块名、信号名、端口名等。Verilog中标识符区分大小写

1、7书写规范

  • Verilog标识符,以英文字符(大小写均可)、数字、下划线“_”组合而成但只能用英文字符或者下划线开头(下划线开头需要慎用,一般为软件自带库来使用),标识符用数字开头是不允许的。
  • 最顶层的module_endmodule模块描述语句放在最左侧,比它低一层次的描述语句则向右靠一个Tab键距离。同一语句的关键词要对齐。

1、8Verilog模块文件取名和存盘

  • 文件后缀名必须是“.v”。
  • 文件取名的大小写也是敏感的。文件名与存储路径不能带有中文字符。
  • 对于Quartus,程序名必须和该程序的模块名一致。

1、9注释符号

  • //后的注释文字只能放在同一行
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吴不言不言

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值