FPGA第一个实验----流水灯

         最近有空,想系统学一下FPGA,尽管在本科期间接触过EDA的一些课程内容,但还是遇到了很多问题。

Quartus II软件安装就安了小半天,万幸破解成功了。

FPGA第一个实验----流水灯_第1张图片

       上述为下载的全部文件,包括Quartus II软件安装,帮助安装,器件库安装,仿真工具ModelSim安装,关于具体软件下载,安装过程以及破解请浏览这位博主的博客:https://blog.csdn.net/yxswhy/article/details/79612383

        首先开始了第一个流水灯实验:

module lsd_led(
    input s_clk,          //模块输入输出端口定义,如果没有特别声明变量类型,默认的为线网wire数据
    input rst_n.          //类型,左面定义了两个线网数据类型的输入变量,时钟信号s_clk,复位信号
    output reg [3:0] led  //ret_n,4位位宽的寄存器输出变量led
);
reg [23:0] c;             //定义一个24位宽的计数器变量c
always @(posedge s_clk or negedge rst_n)    //该段代码为功能语句,实现对脉冲计数的功能
begin                                       //时钟脉冲为50Mhz,实现了1s的计数
    if(!rst_n)                              //本段代码采用时钟信号s_clk上升沿,或者复位信号
        c <= 24'd0;                         //rst_n下降沿触发,如果复位信号为0,计数值c初始化
    else                                    //为0,如果c小于50000000,c加一,计满c清零
        if(c < 24'd5000_0000)               //本段代码为时序电路的描述,故赋值采用非阻塞赋值              
            c <= c + 1'd1;                  //<=(注:如果为组合电路,赋值采用阻塞赋值=)
        else
            c <= 24'd0;
end
always @(posedge s_clk or negedge rst_n)    //本段代码实现了移位寄存器的功能,如果复位信号有效
begin                                       //led赋值为:0001,如果计数值为50000000时,led
    if(!rst_n)                              //循环左移移位,{}实现了循环左移的功能
        led <= 4'b0001; 
    else
        if(c == 24'd5000_0000)
            led <= {led[2:0],led[3]};
        else
            led <= led;
end
endmodule

         在仿真过程中遇到了一些问题:

                 1. Critical Warning (332012): Synopsys Design Constraints File file not found: 'lsd_test.sdc'. A Synopsys Design Constraints File is required by the TimeQuest Timing Analyzer to get proper timing constraints. Without it, the Compiler will not properly optimize the design.

这个问题,一般情况下可以忽略,但是当你设置Tools 选项中的Options中的Massage中的Promote critical warning messages to error messages,打勾后,综合编译就会一直提示错误,使得编译无法通过,无法往下进行。

FPGA第一个实验----流水灯_第2张图片

                 2.第二个问题是把sof文件转为jic文件,步骤如下:

打开File>Convert Programming Files

FPGA第一个实验----流水灯_第3张图片

选择类型为.jic,选择要下载的芯片类型,点击Flash Loader添加所用的芯片,点击SPF Data选择需要转换的sof文件

FPGA第一个实验----流水灯_第4张图片

        以上为四个流水灯实验,以及实验中遇到的问题,Verilog语言编程主要是描述一个数电电路,语言很简单,但数字电路的知识还有待进一步提高,加油↖(^ω^)↗

你可能感兴趣的:(FPGA学习)