zoukankan      html  css  js  c++  java
  • verilog 语法一 led 翻转

    `timescale 1ns / 1ps
    //////////////////////////////////////////////////////////////////////////////////
    // Company:
    // Engineer:
    //
    // Create Date: 2020/09/09 14:33:56
    // Design Name:
    // Module Name: led
    // Project Name:
    // Target Devices:
    // Tool Versions:
    // Description:
    //
    // Dependencies:
    //
    // Revision:
    // Revision 0.01 - File Created
    // Additional Comments:
    //
    //////////////////////////////////////////////////////////////////////////////////

    module led
    (
    input sys_clk, // 输入信号,系统时钟
    output [1:0] led_state // 输出信号,LED 灯 状态,占用 bit 宽度 2位, 类似 C语言 char 占用 8bit
    );

    // 寄存器定义 位宽 32位
    reg [32:0] time_count;

    // 变量赋值,可以跟一个表达式
    // 计数器 小于 25000000 led_state=1,否则 =0;
    assign led_state = (time_count < 32'd2500_0000) ? 2'b01 : 2'b00;

    // 计数器 在 0-5000_0000 之间进行计数
    // posedge verilog 语言关键字,表示上升沿
    // negedge verilog 语言关键字,表示下降沿
    // Always@(posedge clk)表示在 clk 信号的上升沿的时刻, 执行always块内部的语句
    always @( posedge sys_clk)
    begin
    // 阻塞/非阻塞赋值:采用"<="进行赋值的语句,称为"非阻塞赋值",
    // 采用"="进行赋值的语句,称为"阻塞赋值"。
    // 在always块中,阻塞式赋值方式语句执行有先后顺序,而非阻塞赋值语句则是同时执行。
    // 因此,在 时序逻辑电路中,两种赋值方式可能或综合出不同的电路结构。
    if(time_count < 32'd5000_0000)
    time_count <= time_count + 32'd01; //小于 5000_0000 累加
    else
    time_count <= 32'd00; //大于 5000_0000 清零
    end

    endmodule

  • 相关阅读:
    call apply bind的区别
    Js的继承方法
    JS回调函数 回调地狱问题 以及解决方法
    Js闭包
    Js中的this指向问题
    ES6 Class继承
    面向对象
    Vue
    JavaScript数组 字符串的方法
    28.mysql练习
  • 原文地址:https://www.cnblogs.com/suozhang/p/13645651.html
Copyright © 2011-2022 走看看