在这个步骤里面,我们选择对应开发板的芯片型号。我以SANXIN-B04为例,芯片型号为XC7A35TFGG484-2。可以在搜索框里直接输入,在下面的选项里面我们选择第一个,如图所示。选中之后点击NEXT。
9 _ \8 j: T$ ?: E
2 Y7 T+ R" ~. h
4 o+ u# {8 Z+ T5 S- i. |$ B6 f3 u/ i- p' y% |
最后一步,为工程的信息展示。确认信息无误后,点击Finish。至此,我们的工程就新建完成了。
/ m+ C0 c# H$ n1 o" C4 I
7 [9 ~( u1 |. Y+ o5 ]+ F+ ^
( t, e. z" f6 l, V
3 \$ _& I" T: c" M+ Z$ K z
我们把整个界面分为5个区域,如上图所示。
1、菜单;
软件的常用功能全在此区域,方便我们进行后续操作。每一项的作用,会在后续的讲解中为大家介绍。
2、源文件;
新建文件可以在此区域,在这个窗口下面,有三个选项,我们在第一个选项中可以看到代码文件的层次结构。
3、属性;
窗口会显示所选内容的具体信息
4、信息;
展示任务进度,编译信息等内容。
5、报告;
展示工程信息以及状态。此外编写代码也是在此区域。
9 _ O# u& b9 {4 `* _% U. G
通过以上的介绍,我们明白了各个区域的作用,接下来我们就新建文件开始编写代码:
: Y: c: \7 [, l1 b
1 h2 ]7 @ J- [; Z6 N
# e( O G- r1 E( @, h6 {
" H% p# j' v( \) i2 M0 A- k2 V
! I Q+ v( N" U. R
在源文件窗口,点击+号。如下图:
+ C2 f4 Y( j b$ C5 ^$ f
" D S* S% [! I* s _# o8 ~. g' k
- J! P Q7 |' j
9 w# n2 a+ z. ?9 U$ f
三个选项,第一个是添加或者新建管脚约束文件,第二个是添加或者新建源文件,第三个是添加或者新建仿真文件。那么我们选择第二个选项。
: \4 G2 c8 {; q0 f4 _
# O) |( ]* q& S
, _0 _" w& L) I- z% G4 i8 X7 @: S
: R6 i ]4 B! |/ h( a4 r
2 F1 P8 Z+ D* N' ]# e
选择好之后,点击NEXT。然后按照上图中所示,点击Creat File;
5 z# N5 s7 `4 H4 c
& n9 i; i% H5 I* ?+ Y! N* M
' I- e/ c( l9 G8 e" t7 m( F$ ~3 ? H4 B& l
, G! \/ q- a" B+ }
在File name一项中,填入文件名,其他保持默认,然后点击OK,再点击Finish。
1 e2 K i a' e: P
7 F% l/ H, q) y- G; L
7 _7 p. `0 f5 K$ q4 Y5 H, H4 N
# p7 U7 i: ~" V3 j# f
" g F" R, M" O' L; u
此界面我们可以提前填入端口,选择好端口方向以及位宽。然后软件就可以帮我们写好代码的端口定义部分。如果不需要可以直接点击OK。
) E* h9 J: |0 I8 O3 M
- T; \7 q: `$ t: ~. A
9 D2 H ?8 l$ E3 N
2 d: N) G; W. W" O) u+ ^# d
& b# |2 Z. C$ \" p5 y( |& V8 {
再点击YES。
+ ~) T7 m7 D% ~6 R& D, ?
/ ?, Y9 [- R3 _, q0 o# p4 l新建好之后,会出现如下图:
: _/ q S# d6 ]/ w# y
: e2 c7 J+ P1 L/ V9 j
; p; ]9 X. g' U/ ~1 V. U; m) i
5 E' V6 G; g1 P
9 x) \5 ?- e/ T: `0 O/ Q9 L
在Design Sources中,可以看到我们新建的文件。双击打开开始写代码。自动生成的代码如下:
4 ` I" L4 K1 _
6 o0 B+ H9 V7 C: T" \" W4 y
* C: ?) i" G+ [& T' u
% f! d+ E/ m6 I! F/ g# ]; B
& L0 S6 w! v i! o
为了更好的向大家展示,我将代码文件中的注释先删除掉。代码如下:
T9 S+ ]$ v4 N3 u3 w5 A
% Q2 m; l: ] @, M; c* p$ H
# w1 n: E: U* J o, [& m! J4 W
! R+ r: A6 m0 ]( [) C, ?
) E; a# a7 [0 b& A. f) R
为了验证代码的正确性,还需要写测试文件进行仿真测试。仍然点击+号新建文件,只不过这次我们选择第三个选项:
4 T: I# ?0 C6 L% T; m3 q! g
- T9 E: x9 @5 Q8 N1 r1 m
/ c3 x+ Q9 t8 g; f* N$ e) }
, P' i2 S( Q; t$ q1 R
% C3 M/ X, ~1 ?
点击NEXT;选择Creat File:
9 {, R& t( w/ {/ k" X- o: g2 ?
8 J- K2 H7 _9 o
7 `5 C* w) V! I. O/ p. m2 ^8 b2 M; F2 j+ y
/ O7 w3 d, O' L; Q! i+ q
) Z" s5 f8 y2 j1 o0 q+ n6 W
; ^; {1 e7 x- k
# R; ]4 W; F' V
& X( v* H7 w" v0 x3 ]5 M
点击OK,点击Finish。定义端口界面直接跳过,因为我们的仿真文件没有端口。
% E g4 a. y7 C$ q7 U- i
( X; Y2 W2 s' w% Y) v# V
+ t: e9 n5 Q% l( q
6 n+ [: b) M- o9 v* f, N2 `
新建好之后,按照上图所示,双击打开文件。代码如下:
% g0 F: C' I7 |, v) ?( m3 t. F* B
# }8 W+ |- K3 n0 A# K5 W; N
' a/ u6 u- s$ x" t6 D& ^! P2 \
9 U% s. `% N% O: U% z& z+ H& K2 Q' _
/ L( T+ W6 m# o- V
我们可以使用随机数来产生我们需要的输入,代码写完之后,我们可以直接打开仿真。
! P, u8 i; @2 r7 I
4 D. C: k1 l6 B2 |( y
2 E( F( V7 k* r) j M j
* ]$ k2 X& ~9 l7 @4 ^
( S F" e' S' S* A& T# O B& h
1 C& C: d6 R9 m+ u( R
点击如图所示的选项,打开软件的仿真器。
# Z7 B, f: M) R+ q. u2 O
5 I% P2 h$ Z! O1 h+ a2 {: m
0 C6 R1 X# T: X8 B
# F$ f) u8 @4 Y
! @+ q/ |: V+ p1 n( u6 @# Z6 K+ a8 b/ b4 R: L
6 y6 c6 B: X+ B2 N+ @" x$ r
仿真图打开后,我们点击如图所示的按钮,可以看到全部波形。在仿真图中,我们可以看到后半部分波形没有变化,这是因为我们随机数生成了20组,每组20ns,所以总时长为400ns。但是仿真软件是默认运行1us的,所以就看到了如图所示的情况,在此,大家可以随意生成随机数的个数。我们验证仿真时,只需要看前400ns的波形就可以了。按照波形显示,我们可以验证到波形输出与与门真值表相同,所以最终结果是正确的。至于下板验证后续再出相关文章说明。
; K2 v! H- b$ _* l; I
, v6 k/ ] [0 q- j H5 L) `