Verilog之小规模经典电路设计

verilog语句执行顺序
  • 每个语句块,是事件(event)触发执行的
  • 主要分为
    • 连续赋值语句assign
    • 过程赋值语句always, initial(只执行一次)
  • 连续和过程之间是并行执行的,只要满足出发条件即可
  • assign是在后面的输入发生变化时进行执行
  • always是在敏感列表发生变化时进行执行
  • initial是不可综合的
  • 阻塞和非阻塞赋值
    • 所有过程赋值中非阻塞赋值都是同时并行赋值的
    • 阻塞赋值是一条一条进行的
    • 阻塞赋值其实也是可以实现阻塞赋值的,主要是要理解非阻塞赋值实质上是把每一个旧数据给了寄存器,只需要把更新的值只给第一位置即可(即最后赋值,电路顺序不同,影响最后的功能)
    • 总结说,非阻塞赋值不存在顺序先后,而阻塞存在先后执行关系,电路结果可能不同
  • 基础规则
    • 描述组合逻辑使用=赋值
    • 描述时序逻辑使用<=赋值
    • 不要在多个语句块中对同一个变量赋值—多驱动不可综合
    • 在一个always块内,该块的一次触发,对同一个信号最多只能赋值一次
  • 设计思考
    • 为什么我们在设计过程中对于组合逻辑不使用复位信号?
      • 一个电路结构主要由组合逻辑和时序逻辑构成,然而当我们对时序逻辑器件进行复位后,那么组合逻辑器件的输出是一定的,因此,没必要多此一举将复位信号的接入组合逻辑。
基于verilog的小电路模型
  • 边缘检测
    //上升沿检测器
    wire clk,rstn;
    wire din;
    reg din_dly;
    wire pulse;
    assign pulse = din & (!din_dly);
    always @(posedge clk or negedge rstn) begin
      if(!rstn)
        din_dly <= 1'b0;
      else
        din_dly <= din;
    end
    

在这里插入图片描述

  • 计数器—当信号en高电平一次,则记录一次
    module counter(
      input wire en,
      input wire clk, 
      input wire rstn,
      output reg [3:0] cnt
    );
    always @(posedge clk or negedge rstn) begin
      if(!rstn)
        cnt <= 4'b0000;
      else if(en)
        cnt <= cnt + 4'b0001;
    end
    endmodule
    

在这里插入图片描述

  • 移位寄存器
    • 按照周期整体向某个方向移动
    • 一次可以整体移动Nbit
    • 可以左移也可以右移
    module Shift-Register(
      input wire din,
      input wire rstn,
      input wire clk,
      output reg [3:0] sf
    );
    always @(posedge clk or negedge rstn) begin
      if(!rstn)
        sf <= 4'b0000;
      else
        sf <= {sf[2:0], din};
    end
    endmodule
    

在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Verilog软件TD指的是Verilog仿真软件中的时钟延迟。在Verilog中,时钟信号被用来同步电路的操作,以确保数据在正确的时间被处理。然而,信号的传输和处理都需要一定的时间,这就引入了时钟延迟。时钟延迟是指从时钟信号发生变化到电路中的逻辑操作完成所需的时间。 Verilog软件TD的大小取决于多个因素,包括电路的复杂性、电路中的逻辑单元数量和其延迟特性等。一般来说,当电路的规模增大,逻辑单元数量增多时,Verilog软件TD也会增加。这是因为更多的逻辑单元需要更长的时间来完成操作,从而导致整体的时钟延迟增加。 时钟延迟对电路的运行速度和性能有直接影响。较大的Verilog软件TD值意味着电路的操作时间更长,可能会导致电路的性能降低。因此,在设计Verilog电路时,应该尽量减少逻辑操作的数量,优化逻辑的结构,以减小时钟延迟的影响。 此外,Verilog软件TD还可以通过优化时钟树的设计来改善。时钟树是指时钟信号从源头传输到整个电路的路径。通过优化时钟树的布线和布局,可以减小时钟信号传输的时间和路径长度,从而减小Verilog软件TD的值。 总之,Verilog软件TD是指Verilog仿真软件中的时钟延迟。它对于电路设计和性能具有重要影响,应该通过优化逻辑操作的数量和结构以及时钟树的设计,尽量减小时钟延迟的影响。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值