流程
- 设计定义
- 设计输入
- 分析和综合
- 功能仿真(modelsim-altera)
- 布局布线
- 时序仿真(modelsim-altera)
- 时序约束
- IO分配以及配置文件的生成
- 配置(烧写FPGA)
- 在线调试(……)
设计定义:
二选一多路器
两个输入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 控制端口
//当key_in == 0 :led_out = a
assign led_out = (key_in == 0)? a : b;
endmodule
`timescale 1ns/1ps
module led_test_tb;
//激励信号定义,对应连接到待测试模块的输入端口
reg signal_a;
reg signal_b;
reg signal_c;
//待检测信号定义,对应连接到待测试模块的输出端口
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;//延时100ns
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
添加仿真文件 seting-simulation....
FPGA时序
Thold <= Tco + Tlogic +Trouting - Tskew.
Tsu <= Tclk +Tskew -Tco - Tlogic -Trouting.
静态时序分析_一点一点的进步的博客-CSDN博客_插buffer增加时钟延迟
见上链接详细介绍