在这个步骤里面,我们选择对应开发板的芯片型号。我以SANXIN-B04为例,芯片型号为XC7A35TFGG484-2。可以在搜索框里直接输入,在下面的选项里面我们选择第一个,如图所示。选中之后点击NEXT。
. ]9 O' s g4 ~* @& r
1 n0 f1 o6 A: D0 I( D1 r
O X$ R; R; z4 I6 d, n+ m' H5 J5 x* U
% m+ X( U; \( h9 p3 B$ h8 {
最后一步,为工程的信息展示。确认信息无误后,点击Finish。至此,我们的工程就新建完成了。
4 P2 _9 G$ _9 s3 b! W
+ E& M% c. J- D7 R% Z% B5 l @3 K5 o1 P P0 e2 e
y, ~. P0 e% I: f, a+ w
我们把整个界面分为5个区域,如上图所示。
1、菜单;
软件的常用功能全在此区域,方便我们进行后续操作。每一项的作用,会在后续的讲解中为大家介绍。
2、源文件;
新建文件可以在此区域,在这个窗口下面,有三个选项,我们在第一个选项中可以看到代码文件的层次结构。
3、属性;
窗口会显示所选内容的具体信息
4、信息;
展示任务进度,编译信息等内容。
5、报告;
展示工程信息以及状态。此外编写代码也是在此区域。
& e# r) W, t2 j) l7 B
通过以上的介绍,我们明白了各个区域的作用,接下来我们就新建文件开始编写代码:
* c7 Q# z9 E, n" V5 V1 T
. c, o0 w4 p; D/ R& y8 h
; l0 u$ e8 R7 T t1 C/ Y% L/ m: ]* X6 |) G, l) v& W k l3 R- {( y
9 J5 Q/ }8 [) R' @
在源文件窗口,点击+号。如下图:
! t ^) b- x; W
$ p8 N( F! W6 V1 X U/ J" [
+ ^5 u! U- ]& X' [' _' x5 |% C. w! D7 ]0 V3 a, z1 ~. `( j* X" R1 V
三个选项,第一个是添加或者新建管脚约束文件,第二个是添加或者新建源文件,第三个是添加或者新建仿真文件。那么我们选择第二个选项。
* y, F* C2 g; A! a
$ I& B5 ?8 J" C! t
9 Y( @9 h. r% R5 a0 _
2 v1 \7 }+ w9 w* \0 q
/ p s* }: e8 i: ^+ a6 C! i
选择好之后,点击NEXT。然后按照上图中所示,点击Creat File;
9 g- j' O. K0 P. ]
+ n) D# u5 b; o
7 p) ^; w$ n: {8 y4 D+ `8 ~8 z9 a
! x- B/ }- V2 Q- B) K' y. }+ V
) y3 D: T5 Z' M- p4 c
在File name一项中,填入文件名,其他保持默认,然后点击OK,再点击Finish。
% Z7 Z- E: f5 s4 g5 N' n
7 N& [6 \1 K' a2 J
4 I+ k4 |0 C2 W y5 Y3 Z" F. S0 \- v5 Z$ t7 w, |3 ?3 O& x
, o# P; g3 W# v0 F, _8 P
此界面我们可以提前填入端口,选择好端口方向以及位宽。然后软件就可以帮我们写好代码的端口定义部分。如果不需要可以直接点击OK。
# H$ d- E5 J- {5 ~
" \4 v- p0 ^2 J8 m% c" U0 T
; G0 E) S' M! b6 b8 G( R8 _; V6 {: F6 V! a% y9 a
+ G4 P8 E- b: P' A3 l
再点击YES。
7 t/ \, J- t N
% |; y! p+ h" j
新建好之后,会出现如下图:
2 E$ P' _9 T, G. ]* i1 |
+ p; ]! h* r, B: f, t7 ?0 O9 f, K7 o
& t5 w6 m* H# M2 l
$ c4 r# S7 l4 A
: C8 i* D2 J' _
在Design Sources中,可以看到我们新建的文件。双击打开开始写代码。自动生成的代码如下:
1 C. B ]1 x& m3 I6 }
( p) o+ {/ ~9 ~$ _" B" Z
- m( [" @) h S8 c3 l9 L3 n z: _/ j5 M8 M: V! v O) U5 w
, g6 e- b9 x$ i
为了更好的向大家展示,我将代码文件中的注释先删除掉。代码如下:
3 T& D9 R% w0 Y3 t F! L1 Z
$ o$ [- x' ]3 X9 H( L7 P: J: O/ P
! P5 o; ~# `8 ]
9 A! ~1 g1 B/ O$ \
) U# k0 J' h" H- I* ~0 \
为了验证代码的正确性,还需要写测试文件进行仿真测试。仍然点击+号新建文件,只不过这次我们选择第三个选项:
1 g$ r4 m; J5 @9 M& F
N/ G. G# r3 W
, e! v. J y0 {
, g' | m5 g! w& ?7 \# s+ Z
# y0 r% F0 w5 f% Y: ~
点击NEXT;选择Creat File:
) b: Q8 C( c9 F3 L; @: Y9 D
/ |* M4 p0 M- l
' C+ n% A) U' u4 w H' D# |- P/ z. [1 {5 ?
# J1 L1 k2 f3 ?7 Y6 `- C
7 c& n: L X6 T# @- f3 z
Z1 L j1 ~# B+ g, R
! p% U' ^/ p& v
* `- {3 s/ K6 P
点击OK,点击Finish。定义端口界面直接跳过,因为我们的仿真文件没有端口。
, F u" B) g: b5 J; Q
& e* d+ U: G. }3 x
- Z5 ^" H% ?# x2 g# o* y" A* B% m3 D; ~
/ M; L$ C; J$ l; {
新建好之后,按照上图所示,双击打开文件。代码如下:
: @* P# _4 P5 c9 D) f7 v
5 z2 v, _2 E( H# x$ U6 V6 D
2 i% U7 c9 y+ v- h9 O T |1 |
* b# w; w- y* g$ Q3 b# {
6 \( f) r* |% X. H
/ f f" J1 U- a0 e+ i1 n2 Q6 R
我们可以使用随机数来产生我们需要的输入,代码写完之后,我们可以直接打开仿真。
) P% w0 x Q' J j. D
+ r: N3 x4 F. Y V4 P6 J
6 w3 W. W0 k* B& f) x! G
7 Q1 u9 [) B; Q( R
! J/ T4 B" J) r0 J# w/ Z
; k' R/ a( D5 d/ a
点击如图所示的选项,打开软件的仿真器。
' o# B6 k3 }! T! u# T# W
, [ o( H8 c# T* P
, J Z. c* s- ^+ b# F- g! t+ t0 P$ n6 q
- K3 n9 R5 Q2 I( b' V- b! r* @0 W0 P; n# G' ]0 w. g2 D
% h/ m9 W* i7 F# R; S2 Y
仿真图打开后,我们点击如图所示的按钮,可以看到全部波形。在仿真图中,我们可以看到后半部分波形没有变化,这是因为我们随机数生成了20组,每组20ns,所以总时长为400ns。但是仿真软件是默认运行1us的,所以就看到了如图所示的情况,在此,大家可以随意生成随机数的个数。我们验证仿真时,只需要看前400ns的波形就可以了。按照波形显示,我们可以验证到波形输出与与门真值表相同,所以最终结果是正确的。至于下板验证后续再出相关文章说明。
: `7 \, l8 L. n9 D
# G9 U$ A$ o$ C% Y& e1 G8 m