找回密码
 注册
关于网站域名变更的通知
查看: 301|回复: 1
打印 上一主题 下一主题

转——FPGA开发笔记

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-3-27 10:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
转——FPGA开发笔记

/ ]2 w8 g* k% v2 Y9 H, h9 E# o( c; P. W: t$ w
文章摘要:
/ i. w9 J1 `. }$ h) Q近日花巨资从某宝购置了一套FPGA开发板,拿到板子的第一件事肯定是先跑上大名鼎鼎的跑马灯例程,应当算是硬件开发中的HelloWorld了,本文要从新建工程到仿真下载验证,来说明FPGA的开发流程,本文的代码不重要,重点在于流程,流程,流程......% a2 \% F7 D& |4 U4 P1 M/ f

- R3 z- ^4 v% J" O& D/ {硬件平台: EP4CE6F17C8
) M; X1 V. ~4 f7 A0 s+ K: u开发环境: Quartus II 13.1
; G1 w8 C" ~7 {2 G1 T0 j" f0 W5 J' `: O6 u6 e) a# N  [
第一步:新建工程
( ?0 a& n$ l9 G2 J( ^8 dFile --> Open Project Wizard...
6 z5 F+ h  `3 [1 d( s: ]5 U- r1.选择工程目录,指定工程名及设计入口,一般情况下建议工程目录,工程名称及设计入口同名,不能有中文路径;
/ }% A* Z. J7 ?( ~0 S2.添加已有文件,如果新建的工程,则直接跳过;
9 g7 _. h0 R  t+ ?( L/ |3.器件选择,需要与实际用到的器件相同,这里选择EP4CE6F17C8;$ _7 z" K4 T5 o
4.设置工具,一般直接跳过;
7 N* u3 V# K4 ?2 N: n5.信息确认,如果无误则点击Finish完成;' N' T, e) d7 O5 C) F% A# Z# b
修改默认配置:
+ Z9 u2 M: I3 c9 q( v; MAssignments --> Device...
8 l& A+ u. ^" I7 u--> Device and Pin Option...' z: d! Y$ ]& U, N7 o2 \
Unused Pins:未用到引脚选择,As input tri-stated;
- z' {3 {$ E, ^( v& [+ [% VValtage 引脚默认电压值,选择 3.3-V LVTTL;
; f! I; A3 V3 O  X& g, Q
. V! v1 K0 q% b8 l' d: \7 o& W. ?第二步:建立HDL文件  H5 {/ h0 g" l/ O2 G/ i
File--> New...1 j7 F/ R3 o9 `, `' F% b# P
Design Files --> Verilog HDL File
  x$ X+ Z1 G  j$ B' W示例代码:
: _1 M. G& r+ f/ [8 F
2 l3 e! F$ y$ m/ ^6 N( T
  • /*
  • * 功能描述:流水灯演示
  • */
  • 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
    % U- L  w+ ?; W3 I7 h1 d

( ]3 d, B* K- H" u保存文件,名称与之前设置的入口文件相同;" v! J+ u2 [3 x* j+ M/ ?

3 [* }! z% s( T第三步:综合
' v/ F& z% I0 u8 V点击Analysis & Synthesis进行综合;0 X6 {5 T& e7 r6 k. b

% U1 S! d5 Y7 v" R% {1 z第四步:引脚分配
; q0 W5 G: T: F- |8 yAssignments --> Pins Planner打开引脚分配页面进行分配;) V# X0 A1 o, A% S
按照原理图上分配对应的引脚:
- m3 J1 }0 u9 [3 n6 @+ JCLK   --> E1, q, c8 q1 M% `: W6 J
LED0 --> E10
+ l" n, A# n8 J- H" y" t% ~LED1 --> F9
) ^1 S# K. Y& d% S8 K, B! ^3 z' j$ fLED2 --> C9$ F& E5 P/ e& @' ]" O1 Q& O: V* @
LED3 --> D9# l! y' s- @  @5 F# F8 ]
I/O Standard 根据实际电路选择电平标准,这里选择3.3-V LVTTL;
/ Q5 E% u6 w4 n3 F同一个Bank的引脚的电平标准必须相同;
% W9 r1 e: Q) A7 p3 Q注意事项:9 \  t5 N2 P1 Q
必须综合之后,才能进行引脚分配,否则系统并不知道你用了哪些引脚;* M+ h- t0 x" u( \" A* @  i- f

) ~: N' @. t; e$ d7 p第五步:编译
& _' J4 k/ {; r3 J. w& W+ f& U3 S点击Complile Design进行全编译;
# x' R' [! r5 W. q! Z; N; i
  z& a4 o0 o0 z8 f% b: E第六步:下载测试
# ?% K$ N1 {: c6 D& R/ c通过JTAG下载至RAM, g0 r' P# U6 y9 M' p' Y
点击Program Device打开编译器;4 l1 r; e! i0 Q' g: X& R$ c) l. M  D
点击Add File...添加output_files目录下生成的sof文件;6 Q, b3 o3 W4 H, z% c
点击Start即可进行下载;
( e+ |, Z; a! L) k) c下载完成后会自动运行,掉电后会丢失;% P. W/ W5 W- q$ _4 r  W% t
  V0 F* {# e3 G6 V
固化至配置芯片9 J. f1 r, W0 Z1 m, @  X6 o3 R, h
文件转换:( w* Q1 P: y3 c5 L: X- ~* G* T
File --> Convert Programming Files...7 o' m4 _. l* e- r: Z  Q, T7 K  U! x7 |
Programming file type:
+ V% h# j  ?) @* }( t! c. h% N选择文件格式,指定为jic格式,JTAG Indirect Configuration File(.jic)
6 k% S. e( F3 jConfiguration device:2 R5 m; p! h/ h# J
选择配置芯片型号,与目标板上的型号一致(EPCS16)
9 J3 |8 N7 k: F5 i4 hFlash Loader:与目标板上FPGA的类别一致;' J9 l" \; T2 ?% @2 R8 T! ?$ N' w
Sof Data:选择编译好的sof文件;. m" T. D, w! o
点击Generate生成jic目标文件;
" m. d  f$ `% j- O, T# c(此时可选择Save Conversion Setup... 保本配置参数,以便下次调入)2 J# G, i; J" Q  d1 s
下载固化:
  d% v6 ?1 i4 C( S点击Program Device打开编译器;6 l7 H0 p  s# W0 @; {' x4 ?. L! j
点击Add File...添加output_files目录下生成的jic文件;8 U; ^5 R2 }! t* P. L
点击Start即可进行下载;/ Y0 J) @; \0 h/ e" L  J7 ^
下载完成后,不会自动运行,需要重上电才能正常运行;0 W6 H5 L4 v* B  a. ?( _
+ T, B4 d: K% R  `) L9 N
注意事项:. M0 u2 w/ u" j9 [  ~
一般只有在完成调试完成后,交付测试时才需要固化,而在调试过程中,则没必要进行固化下载;
  F8 D, E. M9 U. O* ^# ^
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-7-29 01:07 , Processed in 0.109375 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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