• FPGA -- 实验一:闪烁灯(1)


      第一个实验就简单的实现一个灯闪烁的程序(主要也是为了回顾一下语法,仿真以及下载的流程)

      基本思路是:利用计数器去计数0.5s,然后每隔0.5s改变以下LED输出引脚的电平状态

      硬件电路如下:(与FPGA中的对应连接,在代码注释中给出)

      

      1.在上次建立的那个设计文件里输入以下内容

      (这个实验主要做一个演示,以后建工程等步骤不再赘述)

      

     1 /*********************************************
     2 *文件名:led.v
     3 *功能:实现开发板上LED灯闪烁(闪烁频率为1s)
     4 *平台:win7 64 quartus ii 64bit 
     5 *连接:CLK -- 12 
     6         RST_n -- 44
     7         LED0 -- 21
     8 *********************************************/
     9 
    10 module led(
    11         CLK,RST_n,
    12         LED0
    13 );
    14 
    15 input CLK;
    16 input RST_n;
    17 output LED0;
    18 
    19 //************************************
    20 //因为板子晶振为50M,0.5秒也就是要
    21 //0.5*50*1000_000 = 25_000_000次计数
    22 parameter half_sec = 25'd25_000_000;
    23 //************************************
    24 
    25 //************************************
    26 reg [24:0]count;
    27 
    28 always @(posedge CLK or negedge RST_n)
    29 begin
    30         if(!RST_n)
    31             count <= 25'd0;
    32         else if(count == half_sec)
    33             count <= 25'd0;
    34         else 
    35             count <= count + 1'b1;
    36 end
    37 
    38 //***********************************
    39 reg rLED0;
    40 
    41 always @(posedge CLK or negedge RST_n)
    42 begin
    43         if(!RST_n)
    44             rLED0 <= 1'b0;
    45         else if(count == half_sec)
    46             rLED0 <= ~rLED0;
    47 end
    48 
    49 assign LED0 = rLED0;
    50 
    51 
    52 endmodule

      2.保存文件,并对该设计进行综合

      

      综合完成后,任务窗口会出现如下显示:

      

      3.接下来分配引脚

      点击下列图标

      

      显示如下:然后直接在图中标注部分,修改成开发板上的连接即可

      

      修改完成后,关闭此界面。

      3.注意到,综合之后有一个警告:

      

      这个是指对于没有用到的引脚的设置,一般我们要设置不用的引脚为:输入三态状态!

      打开assignments--device

      

      显示如下:点击device and pin options

       

      显示如下:选择unused pins里面的as input tri-stated

      

      最后点击ok即可

      

  • 相关阅读:
    JS调试工具
    什么是Web Service?
    win7怎么安装消息队列 MSMQ
    死锁产生的原因及四个必要条件
    项目管理模式之如何去除SVN标记
    AJAX中的请求方式以及同步异步的区别
    敏捷软件开发模型--SCRUM
    堆和栈
    UI产品设计流程中的14个要点
    Android中dp和px之间进行转换
  • 原文地址:https://www.cnblogs.com/zhq-blog/p/6182847.html
Copyright © 2020-2023  润新知