[FPGA开发] [原创]FPGA开发笔记--HelloWorld

chun912   2017-5-11 14:09 楼主
文章摘要: 近日花巨资从某宝购置了一套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即可进行下载; 下载完成后,不会自动运行,需要重上电才能正常运行; 注意事项: 一般只有在完成调试完成后,交付测试时才需要固化,而在调试过程中,则没必要进行固化下载; 本帖最后由 chun912 于 2017-5-11 14:23 编辑

回复评论 (9)

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

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

笑而不语
点赞  2017-5-11 14:21
这算什么笔记啊网上很多啊
点赞  2017-5-11 15:28
期待高端教程
点赞  2017-5-11 17:53
期待更新
点赞  2017-5-12 16:46
支持楼主,继续更新
点赞  2017-7-10 21:49
来 我这儿有高低级点 卖给你一个stratix v
点赞  2017-8-31 00:58
加油1,加油
点赞  2017-12-10 07:09
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复