EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 Heaven_1 于 2023-8-22 10:05 编辑 * K! S0 `' J+ Q! c% y
3 k( z ]' g' F S- ~( h# W# j2 y3 y/ v* K& d9 W
1 m& ~0 i5 R: Y* \# D' W; x
7 t8 u' @8 o& E) j3 h本篇掌握基于diagram的Vivado工程设计流程,学会使用IP集成器,添加 IP 目录并调用其中的IP。本篇实现了一个简单的数字钟,能实现计时的功能。由于数码管只有4位,因此本数字钟只能计分和秒。本系统的逻辑部分主要由74系列的IP构成。 , e! Z. [+ c0 U. ^# w" |' A
操作步骤 4 S. O7 ?4 o" L" V
' M8 a: n2 W/ l" j; T
1) 双击桌面图标打开Vivado 2017.2,或者选择开始>所有程序>Xilinx Design Tools> Vivado 2017.2>Vivado 2017.2; 3) 将新的工程项目命名为‘lab2’,选择工程保存路径,勾选‘Create project subdirectory’,创建一个新的工程文件夹,点击Next继续; 5 y/ p( L" n0 S, `- e4 A+ n
. S9 e+ u0 Z0 T; u1 Q
: R7 J9 {! e1 y
6) 最后在新工程总结中,检查工程创建是否有误。没有问题,则点击Finish,完成新工程的创建; ) X" p4 W& `# Y
工程建立完毕,我们需要将lab2这个工程所需的IP目录文件夹复制到本工程文件夹下。本工程需要两个IP目录:74LSXX_LIB与Inte RFace。74LSXX_LIB 和Interface都位于\Basys3_workshop\sources\lab2文件夹下 2) 在Project Settings栏中展开IP项,选择‘Repository’,点击‘+’添加。 1 g5 m- F: d n9 B; ?' n
3) 选择之前复制的IP文件夹
% s3 b' J2 C, J) C' {6 C1 m/ R$ G4) 确认弹窗提示一共添加了27个IP核 # F: g! O7 W) u
3. 创建原理图,添加IP,进行原理图设计。 2) 将新的设计命名为‘digital_clock’。
$ X; i- r) V3 D0 B# H. G+ B* ^0 H- z% M4 c0 i# }" ?5 j' A
3) 在原理图设计界面中,主要有两种方式添加IP核:①Diagram窗口上方的快捷键;②在原理图界面中鼠标右击,选择‘Add IP’。
; ?8 y) m! T6 |1 E* x X+ _4) 在IP选择框中搜索需要添加的IP,例如74LS90。
1 z1 X# ?* Z/ }; s
- l7 t( c: a8 t2 j5) 按Enter键,或者鼠标双击该IP,可以完成添加。本设计共需要添加4个74LS90,以及74LS08、seg7decimal、clk_div各1个。添加完成后如下图所示: % e4 a p, W; Z% W1 ^9 |
$ r) B" K7 V, a, y
6) 添加一个clock IP,在IP搜索框中搜索‘clock’,选择‘Clocking Wizard’添加。双击IP进行配置,在‘Output Clocks’一项,设置输出时钟为两路100MHz输出。 . ~4 u& V. U! X- l& p
7) 在Output Clocks下方,不要勾选‘reset’和‘locked’,点击OK完成IP配置。 : k/ _9 N. m( x6 p( \' P
/ ?7 M1 d! V. i8 q- a8) 再添加一个concat IP,在IP搜索栏中搜索‘concat’并添加。双击IP进行配置,将端口数设为16。 ' J/ ~7 F- k" A+ j
8 T6 y. S' q( |2 `4 ^
9) 同样的,再添加一个端口数为8的concat IP。至此,我们已经完成添加本设计中所有需要使用的IP。如下图所示:
- `7 s7 f5 P1 C( B. [10) 创建输出端口,鼠标右键选择8位concat的‘dout[7:0]’引脚,选择‘Make External’。 . H. p5 R+ |5 [* S* n; |: q
0 c E6 h4 D* k* }6 f, f9 r11) 完成后,如下图所示:
6 c$ H$ a7 @" D& R) V& S. Q9 U; N4 P
12) 同样的,将seg7decimal IP的clr、a_to_g、an、dp这4个引脚,以及clock IP的clk_in1引脚,以及任意一个74ls90 IP的r9_1引脚make external。
5 j+ d8 f0 e6 {+ d8 `13) 修改端口名,双击端口‘r9_1’,在左侧的External Port Properties窗格中将其命名为GND。 % `* ~9 F$ u' O; {7 c9 n4 n$ r
14) 同样的,将‘clk_in1’更名为‘clk’,‘dout[7:0]’更名为‘JC[7:0]’,‘a_to_g[6:0]’更名为‘seg[6:0]’,如下图所示:
2 V5 {4 P$ r% n; m15) 按照下图连线,可以参考‘连线攻略.txt’文件。 . ]! p6 H( U! D: t' |7 }( f( _
16) 点击图纸上方的按键,验证设计的正确性。 9 f+ }- w8 |6 {2 y1 B7 ~* k
( F6 M- A% U' U
5 Y' g9 A5 t+ j; L* m3 A/ K
$ v3 \: y+ v! D8 P: C
a# F. i6 v$ `+ N' d
, n7 m9 W: z$ z/ k21) 在Sources窗格中鼠标右键‘digital_clock’,选择‘Create HDL Wrapper’。 I1 R( x' Q+ k* z7 ~
22) 使用默认选项,点击OK继续,完成HDL文件的创建。 + y1 Y' m) G( Y5 {, g$ b m2 Y
23) 至此,原理图的设计已经完成。
' j* \# P W8 `; S4 A/ F- ^1) 在Flow Navigator中,展开PROJECT MANAGER,点击‘Add Sources’。
6 K9 o. w1 ^$ U# I3 Q1 H0 F
% |6 i# g! _7 t7 O# E8 v: m0 m* j. a! R# i- Y
, |. O6 F+ c% ~8 v* I. T1 t* y$ \
5. 综合、实现、生成比特流文件 . j$ J+ v) o+ `5 ?) V- l6 z
* [7 \& H8 Z2 ]) K7 x7 h
; N0 a+ P3 M" g1 y% R! T
3 a' C4 K0 I' x# C3 x
6 y1 S6 {. T+ J
+ g6 O+ a! G% K; _% C
. m/ j# {+ ]" K8 x, w
5 M5 s$ Y% l7 c8 ?# H! t( w
# o- c, U! {: Z4 ^# j' q% I6 G5 y
% i( ^+ z5 ?* F K8 m& R1 A0 |! a! |1 O: _8 Z6 `
' f4 p) F* z7 f
Analog Discovery2(AD2)
& `$ o- b" E1 _3 n5 d0 E' {* ^# x
1 k5 z! ^2 C- w# {3 w% F% q7 I$ `3 D# o6 i$ o7 u; V* M* L9 p
5 Y! }" I0 _# K2) 连接AD2与电脑,打开WaveForms软件,获取WaveForms软件,可以在公众号内部回复“WaveForms软件安装包”。
+ G S0 O# Y1 M3) 在工具栏选择Settings>Device Manager,打开设备管理器。
4 |7 V" o3 p/ D4 X5 V: P' J$ p4) 选择连接的设备,点击‘Select’。
- R/ Z- Z2 [( r8 W( j% b! }0 s5) 在左侧的功能选择栏选择‘Logic’,使用逻辑分析仪。
7 R' b% z$ M* {- J" k5 h! g' K6) 在窗口中点击‘Click to Add channels’,选择‘Bus’。 7 }( a- W: F0 D4 E8 ?" B
7) 将DIO 0-3端口添加到Bus1。
0 k! }( \2 U7 E" ^- ^* r' B8) 同样的,点击左上角,将DIO 4-7端口添加到Bus2。完成后,如下图所示: 0 y0 ~* ?$ v+ ~% b; n1 |9 ~
9) 点击‘Run’,观察数字时钟的秒针输出。 ! H, v% c$ d. `2 U/ |) z) f' u
OpenScope
1 S8 ~, x6 N9 W, i
( c& k I2 O' Y4 ~( C: {7 m9 j5 \5 X
, N0 J: \7 c; G6 I$ G6 F1 l
. s# s1 p, T; X+ }" f1 Y2 O8 b) h8 T
! O6 C+ c) s' O" ]' f3 v3 x
; a1 g/ e9 o9 F8 j; W
5 J0 s( A, `2 N: Y' O6 D; ~& B
1 @0 H q' Z3 n6 K! w) g$ b
- ~; {& r9 d% _- U; w. u3 B7 M3 c% ?4 Y( {! R2 m
9 o' q- u' Y3 ~9 C7 a6 h6 o
在本地电脑中,默认值为http://localhost:42135 ; H) ?+ O! O9 J5 m% O' H, s! ^+ { Z
7) 选择连接OpenScope的串口,点击Open打开串口。 ( q) `4 P) C+ Q/ W8 x/ J
, Q0 T" i( e1 N8 d3 B7 l' q! V8) 使用默认设置,在最下方点击‘DONE’完成添加。 & L( N- N: k, N- j
8 E- ?8 @; S) E: S& T+ A
9) 点击打开添加的设备,在界面右侧将Time设置为5s,在Trigger一栏选择OFF。 . `1 {5 ^" k# ?* c$ d. p. I
10) 在界面右侧找到Digital一项,选择ANALYZER,依次点击1-8端口。 ' I# t+ @9 I8 K8 [: A/ I+ c) o2 a
+ J* G, K! n* {5 h11) 点击右上方的‘SINGLE’按钮运行一次,完成后在左侧波形图中可以观察秒针的输出,可以使用鼠标拖动波形,方便观察。 ) w4 M. ~9 E# A7 h6 t
! J$ Y4 v* F& a8 d
8 O$ v% L+ T8 a! E+ [! ~9 q
- O, Q; Y# T c% ]1 Z5 }/ P1 i9 }& I4 \
|