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

  • 相关阅读:
    mongodb 条件查询
    node 创建静态web服务器(下)(处理异步获取数据的两种方式)
    node 创建静态web服务器(上)
    node.js 从文件流中读写数据及管道流
    node.js 中的 fs (文件)模块
    vue-router 嵌套路由
    (转载)js调用打印机 打印整体或部分
    web react面试题
    vue 面试题
    vue 父页面中含子页面滑动,滑动结束,底部组件进行滑动
  • 原文地址:https://www.cnblogs.com/suozhang/p/13645651.html
Copyright © 2011-2022 走看看