VerilogHDL(1)

VerilogHDL功能总述

是一种行为描述和结构描述语言,是对实际电路不同级别的抽象。
系统级:实现设计模块外部性能。
算法级:实现设计算法。
寄存器传输级(RTL-register transfer level):描述数据在寄存器之间流动,处理流动数据。(明确对应逻辑电路)
逻辑、门级和电路开关级的设计。
对于特大型(千万门级)的系统级设计,则VHDL更优。

  • 概念

软核:Verilog代码和netlist网表(有功能描述但不对应工艺库)。
硬核:带有版图设计。

  • 设计流程Top-Down

Verilog程序-(IC前端)-Netlist-(IC后端)-版图
设计文件-功能仿真-综合-布局布线-投片生成

Verilog语法

区分大小写。

  1. 数据类型:reg/wire
    reg型:寄存器型,有保持功能,需声明。
    wire型:导线型,缺省。
  2. 阻塞/非阻塞赋值:阻塞=,和非阻塞赋值语句<=
    (1)在时序逻辑电路中使用非阻塞赋值<=
    在块结束后才完成赋值操作。
    (2)在组合逻辑电路中使用阻塞赋值=
    此变量的值在在赋值语句执行完后就立即改变。
    (3)在assign语句中必须使用**阻塞赋值=**语句。
  • assign语句=
    在这里插入图片描述
    *时序逻辑<=/边沿触发/调用寄存器
    在这里插入图片描述
    *组合逻辑=/电平触发
    在这里插入图片描述
    在这里插入图片描述
  1. 执行顺序:并行
    结束——时序逻辑:停掉时钟;组合逻辑:停电
  2. 数据选择器
Module MUX(out,in0,in1,sel); /*模块名(输入输出端口)*/ 
	parameter N=8;/*参数:表示数据位数*/
	output[N:1] out;
	input[N:1] in0,in1;
	input sel;
	/*描述外部特性:输入输出端口描述*/
	assign out=sel?in1:in0;
	/*描述内部特性:逻辑功能描述*/
endmodule
  1. 4位二进制加法计数器

  2. 常量
    1>数字:<位宽>’<进制><数值>
    二进制b,八进制o,十六进制h,十进制d。
    在这里插入图片描述
    2>*表示所有信号改变时触发
    在这里插入图片描述
    在这里插入图片描述
    3>在电平触发中,if else如果没有else/case里如果没有default,会因组合逻辑而自动生成锁存器使数值在否时保持不变,但锁存器不能抵御毛刺干扰,尽量不要。
    边沿触发生成寄存器的时序逻辑。
    电平触发条件完整,生成组合逻辑。
    电平触发条件不完整,生成锁存器的时序逻辑。
    4>语法要点
    always里面赋值左边必须申明成reg
    assign表达式左边必须申明成wire
    申明reg不一定得到寄存器,未声明reg有可能得到锁存器。
    5>coding要点
    如果是边沿触发的逻辑,比如always@(posedge clk),里面一律使用<=赋值。
    如果是电平触发的逻辑,一律使用=赋值,case是电平触发。
    逻辑简单用assign语句,逻辑复杂用always语句。
    分支条件写完整,防止出现锁存器。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值