Quartus II综合modelsim仿真的实现____以LED灯二选一多路器为例

一、设计思想与验证方法

  1、 设计定义

  2、 设计输入

  3、 分析和综合

  4、 功能仿真—modelsim

  5、 布局布线

  6、 时序仿真—modelsim

  7、 时序约束

  8、 IO分配以及配置文件的生成

  9、 配置(烧写FPGA)

  10、在线调试

二、实验要求

  两个的输入IO,a,b

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

  按键释放时,Led灯与b端口保持一致

三、源码

module led_test(a,b,key_in,led_out);

    input a;    //输入端口a
    input b;    //输入端口b
    
    input key_in;    //按键输入端口
    
    output led_out;    //led输出端口
    
    //按下  led_out==a
    assign led_out= (key_in==0)? a:b ;
    
endmodule
led_test
`timescale 1ns/1ps    //    时间单位/时间精度

module led_test_tb;

//激励信号定义,对应连接到待测试模块的输入端口
    reg signal_a;
    reg signal_b;
    reg signal_c;
    
//待检测信号定义(led_out),对应链接到输出端口
    wire led;
    
//例化待测试模块
    led_test led_test0(
    .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
        
        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;
        
        #200
        $stop;    //系统函数,停止
    
    end

endmodule
led_test_tb

四、软件具体操作步骤(Quartus II 13.0 / modelsim 装新版即可)

1.打开quartus 新建一个工程

 如果有现成的文件,添加就行了,没有的话直接next,选择开发板配置,next

选择对应的仿真软件和语言(modelsim--Verilog),finish

2.新建两个verilog文件,设计文件+激励文件,ctrl+s 保存到本地

 3.运行代码

分别对两个文件进行分析和综合,看是否有语法错误

4.功能仿真--RTL simulation

设置仿真软件路径,定位到仿真软件所在文件夹下,软件为modelsim,即如图

 

设置脚本,综合运行

产生波形,按F键查看全局,如图,说明从功能上来说可实现,关闭仿真软件即可

 5.布局布线--start compilation

 

6.后仿真(时序仿真)直接选择最恶劣环境下运行--gate level simulation

 发现有误差脉冲(暂时忽略,后续学习再解决)

 

这里电平变化出现延时

 

 7.假设误差可忽略,进行IO分配(管脚分配)--pin  planner

 网上搜电路板对应的管脚,和信号对应即可

再进行一次全编译--start compilation,生效管脚分配

 点击programmer进行下载,如果没有弹出框中没有文件,也可以手动添加sof文件

 若没有生成sof文件,可能是软件破解有问题,重新破解一遍

原文地址:https://www.cnblogs.com/wjwjs/p/15227278.html