MyFPGA Forum

 找回密码
 注册
搜索
查看: 3323|回复: 6
打印 上一主题 下一主题

【DE10-Nano系列教程】FPGA篇(一)--第一个FPGA工程_手动创建

[复制链接]
跳转到指定楼层
1#
发表于 2020-7-8 15:18:08 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 BOB_Sun 于 2020-7-30 17:06 编辑

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

一、概述
游客,本帖隐藏的内容需要积分高于 1 才可浏览,您当前积分为 0
推荐
 楼主| 发表于 2020-7-13 14:00:37 | 只看该作者
本帖最后由 BOB_Sun 于 2020-7-13 14:41 编辑

三、设计思路
游客,本帖隐藏的内容需要积分高于 1 才可浏览,您当前积分为 0
回复 支持 1 反对 0

使用道具 举报

2#
 楼主| 发表于 2020-7-13 13:40:38 | 只看该作者
本帖最后由 BOB_Sun 于 2020-7-13 14:39 编辑

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

4#
 楼主| 发表于 2020-7-13 14:59:48 | 只看该作者
四、操作步骤
4.1创建Quartus工程
游客,本帖隐藏的内容需要积分高于 1 才可浏览,您当前积分为 0

4.2 创建 Verilog 模块
点击 Quartus 软件工具栏 "File --> New",选择 "Verilog HDL File",点击 "OK"。
游客,本帖隐藏的内容需要积分高于 1 才可浏览,您当前积分为 0

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"。
游客,本帖隐藏的内容需要积分高于 1 才可浏览,您当前积分为 0

4.5创建时序约束
编译 Verilog 代码之前,需要为设计创建时序约束,创建 SDC(Synopsys Design Constraints File)文件,该文件指示 Quartus 软件如何进行时序收敛。如果没有这个文件,在编译过程中会提示 "warning" 信息,
因为 Intel Quartus 软件不会自动进行时序收敛。
点击 Quartus 工具栏 "File --> New --> Synopsys Design Constraints File",点击 "OK"。
游客,本帖隐藏的内容需要积分高于 2 才可浏览,您当前积分为 0

复制以下代码并粘贴到 "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",点击 "保存"。
游客,本帖隐藏的内容需要积分高于 1 才可浏览,您当前积分为 0

4.6 编译 Verilog 代码
游客,本帖隐藏的内容需要积分高于 1 才可浏览,您当前积分为 0

4.7 对 FPGA 编程
游客,本帖隐藏的内容需要积分高于 1 才可浏览,您当前积分为 0

4.8 运行结果
游客,本帖隐藏的内容需要积分高于 1 才可浏览,您当前积分为 0
5#
 楼主| 发表于 2020-7-13 15:01:46 | 只看该作者
五、回顾与拓展
游客,本帖隐藏的内容需要积分高于 1 才可浏览,您当前积分为 0
6#
 楼主| 发表于 2020-7-16 14:34:45 | 只看该作者
本帖最后由 BOB_Sun 于 2020-7-30 17:06 编辑

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



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

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

本版积分规则

小黑屋|手机版|Archiver|MyFPGA

GMT+8, 2024-4-20 09:40 , Processed in 0.047720 second(s), 18 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表