|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
转——基于 FPGA vivado 2017.2 Basys3 信号发生器 设计
' q3 \7 B2 N8 g; z1 Z. u. r4 f& x4 `$ q# W) \$ o0 n4 w9 |
# o7 `( F+ w1 _$ D+ ~! H/ F一、实验目的
. B- {& h3 |' @# M; {
0 q( }6 V& H. z7 S1)掌握基于添加文件和IP的Vivado工程设计流程' M. N' |$ i8 _3 F
* [2 P4 n( t' k1 C6 O
2)掌握基于Tcl的Vivado工程设计流程9 A5 x P* x' z" W' F' Q
6 O2 m' _" _. Y0 k; d% ~
3)学习信号发生器的基本组成结构
" R. y$ T9 R9 [- o* E) v# A- z2 `9 @ L3 D6 G
二、实验原理介绍/ ?5 j# N3 M5 n! Z" ]0 ]: q2 F
2 Z: V9 M4 j; O8 m9 {+ Y7 v
信号发生器能够产生频率波形可调的信号输出,目前仅限于1Hz~4999Hz频率范围,波形可选则三角波,方波,锯齿波,以及正弦波。本系统在Basys3上构建了一个简易信号发生器,简化框图如下:
9 g+ U# v9 e W) M% t7 C
* r0 a# h" w2 W. F6 k5 X' W8 @原理:首先,通过按键设置波形的频率,并通过拨码开关设置波形的种类(一共有正弦波、三角波、方波、锯齿波四种)。频率值可以通过数码管显示。片上的输出时钟计算模块能够根据设置好的频率值,计算波形查找表的输出时钟,以及生成查找表的地址。查找表根据波形选择模块,决定输出何种波形数据,并在输出时钟的驱使下,输出波形数据。最后,片上的DA模块将波形数据发送给外部DA。 4 q0 y7 n ?! J7 S0 ?$ i
本实验通过Basys3外接Pmod-DA1模块,进行DA输出。
% }7 d9 f& R5 F$ l
" n% }/ K& ^2 U- i/ S( A7 B! F三、实验步骤(基于添加文件和IP)9 e" k, X% P7 r& ?
. Q7 `+ m. b5 m
1.新建工程项目
/ [' Q6 b% r/ D4 R) y7 A5 @- S' B3 _ {( o- e1 R- t% m# ]
1)双击桌面图标打开Vivado 2017.2,或者选择开始>所有程序>Xilinx Design Tools> Vivado 2017.2>Vivado 2017.2
( K/ M3 U2 _, _, D, i% S. L4 s6 j' G5 F9 r+ Y
2)点击‘Create Project’,或者单击File>New Project创建工程文件
% m/ o" D! Q" O7 B8 l5 }, i2 ]6 | N9 K4 j/ G/ B
3)将新的工程项目命名为‘lab5’,选择工程保存路径,勾选‘Create project subdirectory’,创建一个新的工程文件夹,点击Next继续
' ?, d/ \5 ?+ b: U" Q, q9 l' x, x1 \, t
4)选择新建一个RTL工程,勾选Do not specify sources at this time(不指定添加源文件),先不添加源文件。点击 Next继续
2 z3 E( S& v" T6 s' _8 a- H1 J- [1 N" i! t) `2 H
5)选择目标FPGA器件:xc7a35tcpg236-1或Basys3。( o& M, }4 m$ w l" K- E% g3 @
- z% s N" F4 ~6)最后在新工程总结中,检查工程创建是否有误。没有问题,则点击Finish,完成新工程的创建
: z! k7 d4 o' a) R, I1 `( h, a
7 C- k% z4 Z6 J5 B2.添加已经设计好的IP和HDL文件
6 @) |& j5 _9 F& C' V( p
0 c+ v; `. l( u: S工程建立完毕,我们将实验五所需的IP文件夹(IP_Catalog)和实验需要使用的HDL文件复制到已经创建的工程文件夹根目录下:
* x1 w; I, M' M' c& v# Q6 p7 f5 e8 Z/ F. }4 {( R q
源文件位于Basys3_workshop\sources\lab5\Src\HDL_source4 x- C+ R( a' A. L
8 m& A) @$ @+ l$ R
复制完成后,如下图所示:
* ^( q# R) e2 ^( p( O ( o4 ?9 Y+ b# H! S( L$ E; B1 M
1)在Vivado界面左侧Flow Navigator中展开PROJECT MANAGER,选择‘Settings’
8 M( o l8 K7 T7 a4 W 5 ^& C! _$ c) _! Q
2)弹出窗口中,在左侧Project Settings中展开IP一项,选择‘Repository’,点击右侧的添加IP。
: C. i0 g1 E8 c+ C, j8 s0 v" |4 M
; G9 X- F5 R$ v& O3 ]3)选择复制到工程文件夹根目录下的IP文件夹
1 l/ e. u8 S) h9 @' D3 J( ~
; H5 p$ R5 T" I. o, g4)点击OK完成添加。
& T6 e1 T+ u4 R# l; ]$ P( w& k% `! R" Q: \- Q
5)添加IP至工程) \9 G4 }6 ?+ I
" e2 U. g) F( l5 i0 t5.1在Flow Navigator中展开PROJECT MANAGER,选择IP Catalog
+ c% e2 u9 z2 ^: d0 m, d 4 h, d) Z8 f4 n$ {6 {8 e/ q
5.2在右侧IP Catalog窗口的搜索框中搜索‘clocking’,双击‘Clocking Wizard’开始配置IP
& a& \3 a% k4 g
) U% V; ~! W, E* p( j7 Z9 `5.3配置IP+ A& q3 P H0 U$ a
5.3.1将IP的名字由‘clk_wiz_0’修改为‘clock’
- x# B; B9 V) `4 M7 g
6 t8 ]4 P/ m" n( }5.3.2选择‘Output Clocks’,设置2路输出时钟(100MHz和50MHz)! p2 l& _3 n1 }, h. e1 ?& p$ w0 w
& Z1 \7 J1 ~! @/ h5.3.3在Enable Optional I/O for MMCM/PLL一项中取消勾选‘reset’和‘locked’选项
; ]- X6 d# g0 Z/ k6 k ) n/ `- U/ s3 o
5.3.4Vivado会创建新的文件夹保存配置完成的IP,点击OK继续
; {; C8 Y- i4 g R$ F
8 C {5 {& D9 u5.3.5弹出Generate Output Products窗口,在Synthesis Options中选择‘Global’,点击‘Generate’继续。) W; B' M* z: V" R" o
4 m( `; S) y5 X( F1 n3 }2 ]1 m4 j$ m9 P6 E
5.4同样的,在IP Catalog窗口中添加Divider Generator,配置如下图如下图所示:- `) u" I0 [5 X# x/ d
0 t7 {; P- _& C, e! }1 h5.5同样的,依次在IP Catalog窗口中添加debounce和seg7decimal这两个IP,使用默认IP设置,无需另外配置,并且Generate Output Products,完成后Sources窗格中如下图所示:: _) W, j" n! o( T! N& Z
& K) `8 y* S1 n5 f0 `' M; ^6 I8 _) u/ H
6)添加HDL文件至工程
7 D1 c" L' K: X) ~+ T6.1在Flow Navigator中展开PROJECT MANAGER,选择Add Sources5 W1 X4 ]" r; u& r9 s
4 C4 p0 W2 X; M; b; M6.2在导向窗口中选择‘Add or create design sources’,点击Next继续
5 p: N" w( h2 S* l1 ] k ! @: _! [2 M5 n- ?' h
6.3在Add or Create Design Sources页面中选择‘Add Files’$ k2 E5 Y! N3 L# T8 U9 w7 M
! E2 z" N4 I; J+ R& u- _
6.4找到lab5根目录,选中添加下图所示的2个HDL文件。
" u0 _7 v. b0 U + n2 D* i0 }/ q5 l, r7 V- l8 B+ X
6.5勾选‘Copy sources into project’,点击Finish完成添加。; I! u+ t0 x N' |+ [
2 S2 `+ R/ o8 H0 m6 ^ e
6.6完成后Sources窗格中如下图所示:
5 a: `2 r! u- E: ?/ L9 s3 c
0 \; k6 y. P% M7)添加物理约束(XDC)文件 _$ V) p; [' i2 l+ n2 `0 |8 F
" r6 M& P- {' C0 Y. f. h9 ]4 B
7.1在Flow Navigator中展开PROJECT MANAGER,选择Add Sources8 n/ U/ l$ P a5 Z0 j1 G
/ \; _9 E1 T0 |5 F/ p n7.2在导向窗口中选择‘Add or create constraints’,点击Next继续+ ?1 U9 P$ v' i# a$ w) }: U
3 p4 l8 ?7 w4 x3 k% p& |
7.3在Add or Create Design Sources页面中选择‘Add Files’
+ e: P5 g- ^, O3 |+ V
& @# z- O- G5 X8 K7.4找到约束文件路径Basys3_workshop\sources\lab5\Src\Constraint,选中并添加‘signal_gen.xdc’文件% s. N1 j$ _7 p5 z r& T
5 J9 n |: H+ Y
7.5勾选‘Copy sources into project’,点击Finish完成添加。
" ^: N0 H8 z* `0 w$ R! i. d4 T1 r
' _: ` J: z( c- p$ B) ], ]7 b
2 H# f! x( b3 g/ B3.综合、实现、生成比特流文件2 {9 x4 r8 T8 k0 `4 F
1)在左侧Flow Navigator中依次点击‘Run Synthesis’、‘Run Implementation’和‘Generate Bitstream’执行综合、实现和生成比特流文件操作。或者,可以直接点击‘Generate Bitstream’,Vivado工具会提示没有已经实现的结果,点击‘Yes’,Vivado工具会依次执行综合、实现和生成比特流文件。0 x1 h. a( R U* \
- ~. O" p: I. P- c( r& Y: A. i0 L
2)完成后,选择‘Open Hardware Manager’打开硬件管理器。6 [- L* ?+ L: V
) U/ d" H7 Z& U( N3)连接Basys3开发板,点击‘Open target’,选择‘Auto connect’。7 @4 q7 a' x" }
& R6 ~3 W h$ v: Z o w
4)连接完成后,点击‘Program device’。
6 _4 Z& g4 h( T, H: ~' s) Z 0 M& p1 D: c7 c# y
5)检查弹出框中所选中的bit文件,然后点击Program进行下载。7 x# Y1 `$ J* \& O
5 z3 v4 T& x. l# B, p2 d2 p9 M( w' y. z5 P6 y; U2 C
五、Basys3实验验证
/ R# b9 S& W1 @& ^/ G
; e9 [/ M0 |. ?; w4 E6 P& O/ ~1.基于Analog Discovery2
0 j7 ?$ A1 @7 X% d4 Y$ z" |- h( T" F, @; V$ w: M5 s( X
按照下图连接方式,首先将Pmod-DA1模块插入在JC口上方,同时将Analog Discovery2的示波器CH1的输出引线1+(橙色)和1-(橙白色)分别与Pmod-DA1模块的A1和GND相连接。7 Y/ j8 x S) p6 A! X# E
7 a- J- i1 r: T& k
1)打开WaveForms软件,连接Analog Discovery2设备+ C+ B8 A& Z3 Y- n
5 D# G1 _; ^# w
2)在左侧的功能选择栏选择‘Scope’,使用示波器% e. ]. r! l" a4 f# |& c% S- }1 h
1 d; b4 h! l' X7 f f3)打开示波器,点击左上角‘Run’按钮,波形输出如下图所示:4 b+ F/ G1 h$ U. W6 c t" _+ B5 {
1 `$ }- o# d! q* r6 B" l
0 Q' h* O# E! Q- ~( j" t- B
2.基于OpenScope
/ f" A) W. \ @9 Y$ n$ i. i/ A( y# s) V1 V) P$ P, S+ R+ |* g
按照下图连接方式,首先将Pmod-DA1模块插入在JC口上方,同时将OpenScope的示波器CH1的输出引线1+(橙色)和1-(橙白色)分别与Pmod-DA1模块的A1和GND相连接。
- F7 ~) F3 S; H. G! {5 A% o7 ^, j+ Y" H& N/ [8 }- z, \+ P
1)打开Digilent Agent
: y5 d; I+ g% B; o! g! r
- g( g, Y' v& F$ ~' D2)在Windows工具栏右侧,右键Digilent Agent图标,选择‘Launch WaveForms Live’,在浏览器中打开WaveForms Live。% \! A" b5 [4 s* A2 y
l0 }1 S- t& D" @7 f3 s3)选择在实验二中已经添加的设备,点击连接该设备
/ C6 H8 \& E& | ?4 `" q- | 9 |) u0 n2 }: B% [* K- {2 d
4)在界面右侧将Time设置为2ms,找到并展开Osc Ch1(示波器Ch1),保持默认参数设置,点击右上角开关按钮,打开示波器。7 x1 m9 F9 k$ F; T
9 C+ m: c6 N! E1 {
5)点击界面右上角的‘RUN’按钮,开始运行。在左侧的示波器中观察输出波形结果。
7 m4 E U2 l+ b0 s) L, M- a+ R 5 B S F, W. f @
通过DIGILENT Basys3开发板右侧的上下左右键进行频率调节,以及利用低两位的开关来选择输出波形 |( v( |8 X' Z* w5 \- O
7 ~& m% R3 ~' ]: o& d. H
7 f) u. @# X6 Q# Y
/ V* S# S4 x% J& M3 Z0 W |
|