5142|9

10

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

[原创]FPGA开发笔记--HelloWorld [复制链接]

 
本帖最后由 chun912 于 2017-5-11 14:23 编辑

文章摘要:
近日花巨资从某宝购置了一套FPGA开发板,拿到板子的第一件事肯定是先跑上大名鼎鼎的跑马灯例程,应当算是硬件开发中的HelloWorld了,本文要从新建工程到仿真下载验证,来说明FPGA的开发流程,本文的代码不重要,重点在于流程,流程,流程......

硬件平台:
EP4CE6F17C8
开发环境: Quartus II 13.1

第一步:新建工程
File --> Open Project Wizard...
1.选择工程目录,指定工程名及设计入口,一般情况下建议工程目录,工程名称及设计入口同名,不能有中文路径;
2.添加已有文件,如果新建的工程,则直接跳过;
3.器件选择,需要与实际用到的器件相同,这里选择EP4CE6F17C8;
4.设置工具,一般直接跳过;
5.信息确认,如果无误则点击Finish完成;
修改默认配置:
Assignments --> Device...
--> Device and Pin Option...
Unused Pins:未用到引脚选择,As input tri-stated;
Valtage 引脚默认电压值,选择 3.3-V LVTTL;

第二步:建立HDL文件
File--> New...
Design Files --> Verilog HDL File
示例代码:

  • /*
  • * 功能描述:流水灯演示
  • */
  • module led_test (
  •     input clk,              // 时钟输入(外部50MHz晶振)
  •     input rst_n,            // 复位按键
  •     output reg [3:0] led    // 4位LED
  • );
  • // 寄存器定义
  • reg [31:0] timer;       // 用于定时器计数
  • // 计时时钟
  • always @(posedge clk or negedge rst_n)
  • begin
  •     if(~rst_n)
  •         timer <= 0;
  •     else if(timer == 32'd200_000_000)
  •         timer <= 0;
  •     else
  •         timer <= timer + 1'b1;    // 通过脉冲数计算时间
  • end
  • // 检测时钟的下降沿和复位的下降沿
  • always @(posedge clk or negedge rst_n)
  • begin
  •     if (~rst_n)            // 复位信号低电平有效
  •         led <= 4'b0000;    // LED灯输出全为低,四个LED灯灭
  •     // 时钟下降沿
  •     else
  •     begin
  •         // 50HMz的时钟下,50个时钟为1us
  •         if(timer == 32'd50_000_000)
  •             led <= 4'b0001;
  •         else if (timer == 32'd100_000_000)
  •             led <= 4'b0010;
  •         else if (timer == 32'd150_000_000)
  •             led <= 4'b0100;
  •         else if (timer == 32'd200_000_000)
  •             led <= 4'b1000;
  •     end
  • end
  • endmodule

保存文件,名称与之前设置的入口文件相同;

第三步:综合
点击Analysis & Synthesis进行综合;

第四步:引脚分配
Assignments --> Pins Planner打开引脚分配页面进行分配;
按照原理图上分配对应的引脚:
CLK   --> E1
LED0 --> E10
LED1 --> F9
LED2 --> C9
LED3 --> D9
I/O Standard 根据实际电路选择电平标准,这里选择3.3-V LVTTL;
同一个Bank的引脚的电平标准必须相同;
注意事项:
必须综合之后,才能进行引脚分配,否则系统并不知道你用了哪些引脚;

第五步:编译
点击Complile Design进行全编译;

第六步:下载测试
通过JTAG下载至RAM
点击Program Device打开编译器;
点击Add File...添加output_files目录下生成的sof文件;
点击Start即可进行下载;
下载完成后会自动运行,掉电后会丢失;

固化至配置芯片
文件转换:
File --> Convert Programming Files...
Programming file type:
选择文件格式,指定为jic格式,JTAG Indirect Configuration File(.jic)
Configuration device:
选择配置芯片型号,与目标板上的型号一致(EPCS16)
Flash Loader:与目标板上FPGA的类别一致;
Sof Data:选择编译好的sof文件;
点击Generate生成jic目标文件;
(此时可选择Save Conversion Setup... 保本配置参数,以便下次调入)
下载固化
点击Program Device打开编译器;
点击Add File...添加output_files目录下生成的jic文件;
点击Start即可进行下载;
下载完成后,不会自动运行,需要重上电才能正常运行;

注意事项:
一般只有在完成调试完成后,交付测试时才需要固化,而在调试过程中,则没必要进行固化下载;

此帖出自FPGA/CPLD论坛

最新回复

加油1,加油  详情 回复 发表于 2017-12-10 07:09
点赞 关注
 

回复
举报

128

帖子

1

TA的资源

一粒金砂(中级)

沙发
 
我猜楼主是不是快毕业要找工作了,不要问我怎么知道的
此帖出自FPGA/CPLD论坛

点评

恭喜你,猜错了,楼主可是高人,这标题一看就知道是系列的开始  详情 回复 发表于 2017-5-11 14:19
 
 

回复

2002

帖子

24

TA的资源

五彩晶圆(高级)

板凳
 
低调的路人 发表于 2017-5-11 14:11
我猜楼主是不是快毕业要找工作了,不要问我怎么知道的

恭喜你,猜错了,楼主可是高人,这标题一看就知道是系列的开始
此帖出自FPGA/CPLD论坛
 
 
 

回复

10

帖子

0

TA的资源

一粒金砂(初级)

4
 
shower.xu 发表于 2017-5-11 14:19
恭喜你,猜错了,楼主可是高人,这标题一看就知道是系列的开始

笑而不语
此帖出自FPGA/CPLD论坛
 
 
 

回复

1903

帖子

0

TA的资源

版主

5
 
这算什么笔记啊网上很多啊
此帖出自FPGA/CPLD论坛
 
 
 

回复

1706

帖子

4

TA的资源

纯净的硅(初级)

6
 
期待高端教程
此帖出自FPGA/CPLD论坛
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

7
 
期待更新
此帖出自FPGA/CPLD论坛
 
 
 

回复

20

帖子

0

TA的资源

一粒金砂(中级)

8
 
支持楼主,继续更新
此帖出自FPGA/CPLD论坛
 
 
 

回复

22

帖子

0

TA的资源

一粒金砂(中级)

9
 
来 我这儿有高低级点 卖给你一个stratix v
此帖出自FPGA/CPLD论坛
 
 
 

回复

4

帖子

0

TA的资源

一粒金砂(初级)

10
 
加油1,加油
此帖出自FPGA/CPLD论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表