zoukankan      html  css  js  c++  java
  • 点亮一个LED灯

    设计定义:

    二选一多路器

    两个输入IO,a、b。可以是高电平,

    输入按键按下时,LED灯与a端口状态保持一致,

    按键释放时,LED灯与b端口状态保持一致

    设计输入:创建一个project

    编写功能代码

    module LED(a,b,key_in,led_out);
    input a;//输入端口a,b;
    input b;

    input key_in;//按键输入,实现输入通道的选择

    output led_out;//led控制端口

    assign led_out=(key_in==0)?a:b;//当key_in==0,led_out=a;



    endmodule

    编写testbench 

    `timescale 1ns/1ps

    module LED_tb;

    reg signal_a;
    reg signal_b;
    reg signal_c;
    //激励信号定义,对应连接到待测试模块的输入输出
    wire led;
    //待检测信号定义,对应连接到待测试模块的输出端口
    LED u0(
    .a(signal_a),
    .b(signal_b),
    .key_in(signal_c),
    .led_out(led));
    //例化待测试模块

    initial
    begin
    signal_a=0;signal_b=0;signal_c=0;
    #100//延时100ms
    signal_a=0;signal_b=0;signal_c=1;
    #100
    signal_a=0;signal_b=1;signal_c=0;
    #100
    signal_a=0;signal_b=1;signal_c=1;
    #100
    signal_a=1;signal_b=0;signal_c=0;
    #100
    signal_a=1;signal_b=0;signal_c=1;
    #100
    signal_a=1;signal_b=1;signal_c=0;
    #100
    signal_a=1;signal_b=1;signal_c=1;
    $stop;
    //产生激励
    end
    endmodule

    设置脚本

    前仿

    前仿结果

    后仿结果

     会发现在后仿的波形中会产生脉冲波形

     还存在逻辑的延迟

    这些问题在后面的学习中,现在重点学习流程。

    假设这些问题都是可以接受的,现在回到quartus II中对IO进行分配,将设计对应到具体的电路板。

    这里查阅DE1-SOC开发板的硬件引脚文档,可以查到键盘和LED灯的接口。

    (友晶DE-SOC相关资料可以在http://www.terasic.com.cn/cgi-bin/page/archive.pl?Language=China&CategoryNo=182&No=870&PartNo=4 上下载

    相应的管脚分配图可以在DE1-SOC_V.1.2.0_SystemCDSchematic文件夹下找到。)

     

    从图中可以看出可以选择LED为V16等四个灯,KEY为AA14等案件,a,b信号输入选择AC12,AD12等SW拨码开关

    下面选择引脚分配

     设置好后的引脚分配图,设置好后点击关闭即可。

     

     全编译后,点点击programer键即可打开下载界面。点击Hardware Setup

     选择DE-soc后close(第一次用开发板的可能没有这个选项,这个在最后的附录中将进行补充)

    然后点击autodetect,选择FPGA设置,FPGA和HPS装置会出现在JTAG chain里面

     选定器件后右键,选择Change file

     

     选定软件程序生成的output file 下的.sof文件,最后点击start即可成功烧写到开发板中。

     

     实物测试方法

    把SW1拨到靠灯一端,SW5在另一端,按下KEY0后LED灯会亮,不按下会熄灭,效果如下图所示。

    到这里,整个项目的基本开发流程就基本能够理解了。

    附录:

    第一次插上DE1-soc系统因为没有驱动,会检测不到开发板,打开系统的设备管理器会发现有个无法检测的设备。

    双击它后选择驱动导入-----》然后自己从quartus-----》安装路径quartusdrivers\usb-blaster-ii中导入即可添加设备驱动。

  • 相关阅读:
    python 通过*.cer *..pfx 获取公钥私钥
    python 交集 并集 差集
    python3 RSA加密、解密、签名
    Go 入门
    ansible入门篇一
    ACM/ICPC 之 两道dijkstra练习题(ZOJ1053(POJ1122)-ZOJ1053)
    数学软件 之 基于MATLAB的DFP算法
    ACM/ICPC 之 最短路径-dijkstra范例(ZOJ2750-POJ1135(ZOJ1298))
    ACM/ICPC 之 判别MST唯一性-Kruskal解法(POJ1679)
    ACM/ICPC 之 四道MST-Prim解法(POJ1258-POJ1751-POJ2349-POJ3026)
  • 原文地址:https://www.cnblogs.com/noticeable/p/7186425.html
Copyright © 2011-2022 走看看