zoukankan      html  css  js  c++  java
  • 【ZYNQ Ultrascale+ MPSOC FPGA教程】第九章Vivado下按键实验

    原创声明:

    本原创教程由芯驿电子科技(上海)有限公司(ALINX)创作,版权归本公司所有,如需转载,需授权并注明出处。

    适用于板卡型号:

    AXU2CGA/AXU2CGB/AXU3EG/AXU4EV-E/AXU4EV-P/AXU5EV-E/AXU5EV-P /AXU9EG/AXU15EG

    实验Vivado工程为“key_test”。

    按键是FPGA设计当中最常用也是最简单的外设,本章通过按键检测实验,检测开发板的按键功能是否正常,并了解硬件描述语言和FPGA的具体关系,学习Vivado RTL ANALYSIS的使用。

    1.按键硬件电路

    开发板按键部分电路

    从图中可以看到,电路的按键松开时是高电平,按下时是低电平。

    开发板LED部分电路

    而LED部分,高电平灭,低电平亮

    2. 程序设计

    这个程序没有设计的很复杂,通过简单的硬件描述语言看透硬件描述语言和FPGA硬件的联系。首先我们将按键输入经过一个非门后再经过2组D触发器。经过D触发器的信号,会在D触发器时钟输入的上升沿锁存然后再送到输出。

    在进行硬件描述语言编码之前,我们已经把硬件构建完成,这是一个正常的开发流程。有了硬件设计思路无论是通过画图还是通过Verilog HDL、VHDL都能完成设计,根据设计的复杂程序和对某种语言的熟悉程序来选择工具。

    3. 创建Vivado工程

    3.1 首先建立按键的测试工程,添加verilog测试代码,完成编译分配管脚等流程。

    `timescale1ns/1ps
    module key_test
    (
    	input                 clk,//system clock 25Mhz on board
    	input[3:0]           key,//input four key signal,when the keydown,the value is 0
    	output[3:0]           led        //LED display ,when the siganl low,LED lighten
    );
    
    reg[3:0] led_r;//define the first stage register , generate four D Flip-flop 
    reg[3:0] led_r1;//define the second stage register ,generate four D Flip-flop
    always@(posedge clk)
    begin
    	led_r <=  key;//first stage latched data
    end
    
    always@(posedge clk)
    begin
    	led_r1 <= led_r;//second stage latched data
    end
    
    assign led = led_r1;
    
    endmodule
    

    3.2 我们可以使用RTL ANALYSIS工具查看设计

    3.3 分析RTL图,可以看出两级D触发器,和预期设计一致。

     

    4. 板上验证

    Bit文件下载到开发板以后,开发板上的"PL LED"处于亮状态,按键“PL KEY1”按下“PL LED1”灭。

  • 相关阅读:
    [常用的SQL语句总结]
    [HTML辅助方法Html.Raw()的简单应用]
    [抹零操作的三种方法]
    如何禁用ViewState,EnableViewState属性设置
    vs2008自定义代码段
    C#.net模拟提交表单GET、POST
    .net 判断对象属性,model对象属性是否赋值,PropertyInfo
    PHP的microtime()? 不!这是 asp.net版的microtime()
    很不错的验证码显示页
    GridView加入自动求和求平均值小计
  • 原文地址:https://www.cnblogs.com/alinx/p/14297397.html
Copyright © 2011-2022 走看看