zoukankan      html  css  js  c++  java
  • 数字系统设计练习(四)—— assign语句的使用

    一、实验硬软件环境:

    1. EDA软件:Vivado2019
    2. 实验开发板:Basys3 FPGA套件

    二、实验内容:

      实现的电路功能为:当开关开启,led点亮;开关关闭,则led灯关闭,将图下描述方式改为使用assign持续复制语句描述电路逻辑功能。

    module digt_design_example(
        key, led
        );
    
        input key;
        output led;
    
        reg led;
    
        always @(key)
        begin
            if(key == 1)
                led = 1;
            else
                led = 0;
        end
    endmodule

    三、具体实现

    1. 设计源码
       1 `timescale 1ns / 1ps
       2 //////////////////////////////////////////////////////////////////////////////////
       3 // Company:
       4 // Engineer:
       5 //
       6 // Create Date: 2020/08/16 18:18:37
       7 // Design Name:
       8 // Module Name: led
       9 // Project Name:
      10 // Target Devices:
      11 // Tool Versions:
      12 // Description:
      13 //
      14 // Dependencies:
      15 //
      16 // Revision:
      17 // Revision 0.01 - File Created
      18 // Additional Comments:
      19 //
      20 //////////////////////////////////////////////////////////////////////////////////
      21 
      22 
      23 module led(
      24     input key,
      25     output led
      26     );
      27 
      28     assign led = key;
      29 
      30 endmodule
      View Code
    2. 仿真代码
       1 `timescale 1ns / 1ps
       2 //////////////////////////////////////////////////////////////////////////////////
       3 // Company:
       4 // Engineer:
       5 //
       6 // Create Date: 2020/08/16 18:20:30
       7 // Design Name:
       8 // Module Name: led_tb
       9 // Project Name:
      10 // Target Devices:
      11 // Tool Versions:
      12 // Description:
      13 //
      14 // Dependencies:
      15 //
      16 // Revision:
      17 // Revision 0.01 - File Created
      18 // Additional Comments:
      19 //
      20 //////////////////////////////////////////////////////////////////////////////////
      21 
      22 
      23 module led_tb;
      24     reg key;
      25     wire led;
      26 
      27     led uut(.key(key), .led(led));
      28 
      29     initial
      30     begin
      31         key = 0;
      32 
      33         #100 key = 1;
      34         #100 key = 0;
      35         #100;
      36     end
      37 endmodule
      View Code
    3. 仿真波形图

       

    4. 约束文件
      1 set_property PACKAGE_PIN V17 [get_ports key]
      2 set_property IOSTANDARD LVCMOS33 [get_ports key]
      3 set_property PACKAGE_PIN U16 [get_ports led]
      4 set_property IOSTANDARD LVCMOS33 [get_ports led]
      View Code

    四、 assign总结

    1. 用途:用于描述组合逻辑功能;
    2. 特定:
      • assign语句等式右边变量发生变化则语句执行;
      • 可以多次执行,并始终处于活跃状态;
      • 可以并发执行;
    3. 需要注意的是,assign语句中,等式左边的赋值对象必须是wire类型!
  • 相关阅读:
    数据恢复
    InnoDB LRU优化
    STM32 M0之SPI
    C# 添加日志文件
    VCI_CAN二次开发摘机
    [一点感触]ADF4350 ADF4111混频记
    Linux札记
    C# String与Byte数组的转换
    STM32 CAN
    stm32 F40x CCM数据区的使用
  • 原文地址:https://www.cnblogs.com/mantha/p/13516533.html
Copyright © 2011-2022 走看看