03-点亮LED灯

1.FPGA设计流程

1.设计规划
对项目需求了解,划分子功能模块,子功能模块的输入输出信号及通信关系
2.波形绘制
了解子模块的功能,画出框图,搞清楚如何通过输入信号得到输出信号,进而绘制波形图
3.代码编写
参照绘制的波形图
4.代码编译
检查代码中的语法错误
5.逻辑仿真
编写仿真代码,对verilog代码进行验证
6.波形对比
7.绑定管脚
8.分析综合,布局布线
9.上板验证

2.点亮LED灯

2.1项目文件的管理

Led
  doc -- 文档手册
  quartus project -- 项目文件夹
  rtl -- 存放可综合的代码
  sim(tb) -- 仿真文件
  matlab -- matlab文件夹

2.2 功能需求

  • 点亮LED灯,使用按键控制LED灯的亮灭
  • 使用一个module就可以实现

2.3 硬件资源


  • 使用KEY1点亮LED灯


2.4 波形绘制


2.5 编写代码

module led
(
  input    wire   key_in,
  output   wire   led
);

  assign led_out = key_in;
endmodule

2.6 代码编译

  • quartus新建工程,选择位置及设置名称
  • 加载verilog代码
  • 编译verilog代码

2.7 逻辑仿真

  • 通过编写仿真文件tb,给待仿真的module灌入激励,查看输出波形是否和预期一致
module tb_led();
  // 输入给被测module的变量reg
  // 从被测module输出的使用wire
  wire led_out;  
  reg key_in;

  // 初始化输入信号
  initial key_in <= 1'b0;
  
  // key_in:产生输入随机数,模拟按键的输入情况
  always #10 key_in <= ($random) % 2 ; // 求模,取余,产生非负随机数0,1

  //例化
  // 先写module的输入输出信号,括号里写连入的信号
  led led_inst (
    .key_in  (key_in),   // input key_in
    .led_out (led_out)   // output led_out
  );

endmodule
  • 将tb添加到工程,并进行编译

2.8 绑定管脚

  • 进行一次全编译

2.9 上板验证





固化程序

  • 勾选之后,重新开始下载,下载程序完成之后要重新上电,固化程序才能下载到板子上
posted @ 2023-05-20 23:35  Icer_Newer  阅读(45)  评论(0编辑  收藏  举报