MyFPGA Forum

标题: 【DE10-Nano系列教程】FPGA篇(一)--第一个FPGA工程_手动创建 [打印本页]

作者: BOB_Sun    时间: 2020-7-8 15:18
标题: 【DE10-Nano系列教程】FPGA篇(一)--第一个FPGA工程_手动创建
本帖最后由 BOB_Sun 于 2020-7-30 17:06 编辑

本帖为友晶科技原创帖,未经许可,不得以任何方式复制或者抄袭本文档之部分或者全部内容。如需要完整文档或转载帖子,请联系myfpga@terasic.com.cn

一、概述

概述.jpg (36.15 KB, 下载次数: 19)

概述.jpg

作者: BOB_Sun    时间: 2020-7-13 13:40
本帖最后由 BOB_Sun 于 2020-7-13 14:39 编辑

二、设备
1. 硬件
(注:Terasic DE10-Nano 是一款基于 Intel® Cyclone V SoC FPGA 的开发套件,为开发者提供了灵活的可重构硬件设计平台。如需了解该套件的详情,请访问 Terasic DE10-Nano 官网。)
2. 软件


作者: BOB_Sun    时间: 2020-7-13 14:00
本帖最后由 BOB_Sun 于 2020-7-13 14:41 编辑

三、设计思路

设计思路.jpg (164.85 KB, 下载次数: 18)

设计思路.jpg

作者: BOB_Sun    时间: 2020-7-13 14:59
四、操作步骤
4.1创建Quartus工程

4.2 创建 Verilog 模块
点击 Quartus 软件工具栏 "File --> New",选择 "Verilog HDL File",点击 "OK"。

4.3 创建 Verilog 模块
在 "Structural coding" 处填写逻辑功能定义语句,完整的代码如下所示。
  1. // 创建 Verilog 模块
  2. module my_first_fpga (
  3.         input wire clk, // 50MHz 输入时钟
  4.         output wire LED // LED 输出
  5. );
  6. // 创建一个二进制计数器
  7.         reg [31:0] cnt; // 32-bit 计数器
  8.         initial begin
  9.                 cnt <= 32'h00000000; // 计数从 0 开始
  10.         end
  11.         always @(posedge clk) begin
  12.                 cnt <= cnt + 1; // 计数值加 1
  13.         end
  14. // 将计数器的第 25 位的值赋值给 ELD[0],使其实现闪烁的功能
  15.         assign LED = cnt[24];
  16. endmodule
复制代码
4.4选择引脚分配
点击 Quartus 工具栏的 "Assignments --> Pin Planner"。

4.5创建时序约束
编译 Verilog 代码之前,需要为设计创建时序约束,创建 SDC(Synopsys Design Constraints File)文件,该文件指示 Quartus 软件如何进行时序收敛。如果没有这个文件,在编译过程中会提示 "warning" 信息,
因为 Intel Quartus 软件不会自动进行时序收敛。
点击 Quartus 工具栏 "File --> New --> Synopsys Design Constraints File",点击 "OK"。

复制以下代码并粘贴到 "Synopsys Design Constraints File" 中。
  1. # inform quartus that the clk port brings a 50MHz clock into our design so
  2. # that timing closure on our design can be analyzed
  3. create_clock -name clk -period "50MHz" [get_ports clk]
  4. # inform quartus that the LED output port has no critical timing
  5. requirements
  6. # its a single output port driving an LED, there are no timing
  7. relationships
  8. # that are critical for this
  9. set_false_path -from * -to [get_ports LED]
复制代码
点击 Quartus 软件工具栏 "File --> Save As",将 "Synopsys Design Constraints File" 命名为"my_first_fpga.sdc",点击 "保存"。

4.6 编译 Verilog 代码

4.7 对 FPGA 编程

4.8 运行结果

创建Quartus工程2.jpg (215.84 KB, 下载次数: 18)

创建Quartus工程2.jpg

创建Quartus工程1.jpg (310.78 KB, 下载次数: 20)

创建Quartus工程1.jpg

创建Quartus工程3.jpg (191.43 KB, 下载次数: 19)

创建Quartus工程3.jpg

新建 Verilog HDL File.jpg (77.25 KB, 下载次数: 20)

新建 Verilog HDL File.jpg

选择引脚分配2.jpg (247.59 KB, 下载次数: 19)

选择引脚分配2.jpg

选择引脚分配1.jpg (112.12 KB, 下载次数: 19)

选择引脚分配1.jpg

创建时序约束1.jpg (41.83 KB, 下载次数: 19)

创建时序约束1.jpg

创建时序约束2.jpg (28.08 KB, 下载次数: 18)

创建时序约束2.jpg

编译Verilog代码1.jpg (65.82 KB, 下载次数: 20)

编译Verilog代码1.jpg

运行结果.jpg (66.25 KB, 下载次数: 19)

运行结果.jpg

对FPGA编程3.jpg (295.44 KB, 下载次数: 20)

对FPGA编程3.jpg

对FPGA编程2.jpg (244.01 KB, 下载次数: 20)

对FPGA编程2.jpg

对FPGA编程1.jpg (163.04 KB, 下载次数: 20)

对FPGA编程1.jpg

编译Verilog代码2.jpg (139.8 KB, 下载次数: 21)

编译Verilog代码2.jpg

作者: BOB_Sun    时间: 2020-7-13 15:01
五、回顾与拓展

回顾与拓展.jpg (18.83 KB, 下载次数: 20)

回顾与拓展.jpg

作者: BOB_Sun    时间: 2020-7-16 14:34
本帖最后由 BOB_Sun 于 2020-7-30 17:06 编辑

附录
1. 修订历史
版本 时间 修改记录
V1.0 2020.07.01初始版本



2. 版权声明
本文档为友晶科技自主编写的原创文档,未经许可,不得以任何方式复制或者抄袭本文档之部分或者全部内容。
版权所有,侵权必究。

3. 获取帮助
如遇到任何问题,可通过以下方式获取帮助:
(1)本帖下方直接留言。
(2)联系myfpga@terasic.com.cn
(3)关注微信服务号:

作者: BOB_Sun    时间: 2020-7-20 11:24
工程源码




欢迎光临 MyFPGA Forum (http://www.myfpga.org/discuz/) Powered by Discuz! X3