在这个步骤里面,我们选择对应开发板的芯片型号。我以SANXIN-B04为例,芯片型号为XC7A35TFGG484-2。可以在搜索框里直接输入,在下面的选项里面我们选择第一个,如图所示。选中之后点击NEXT。
* \+ F# `4 C! j. m$ E. u
; x* J. y& D1 ?+ m' G$ `( T, `
2 `2 l* f! [# t! S
" i$ ]& n0 I# g T6 h
最后一步,为工程的信息展示。确认信息无误后,点击Finish。至此,我们的工程就新建完成了。
' u0 }- T& n; M2 [' G0 H/ t
3 t3 h$ P2 b) N7 V& v3 j
' e# f' Y% K3 j$ X0 F# r' [
; p* ?# @' x2 d2 R5 d. E
我们把整个界面分为5个区域,如上图所示。
1、菜单;
软件的常用功能全在此区域,方便我们进行后续操作。每一项的作用,会在后续的讲解中为大家介绍。
2、源文件;
新建文件可以在此区域,在这个窗口下面,有三个选项,我们在第一个选项中可以看到代码文件的层次结构。
3、属性;
窗口会显示所选内容的具体信息
4、信息;
展示任务进度,编译信息等内容。
5、报告;
展示工程信息以及状态。此外编写代码也是在此区域。
% h( h5 f) v$ r1 \* C/ R% ?/ J
通过以上的介绍,我们明白了各个区域的作用,接下来我们就新建文件开始编写代码:
; p U: ]) |; V+ r/ [0 R7 J
9 }6 A/ R/ \! S
* e& x; C* R8 j0 a" ?
0 j$ h/ O) k, @% L2 V. \
; y4 x, H2 q6 x1 ~
在源文件窗口,点击+号。如下图:
/ G) }* k4 q! Y8 @% U
$ V6 J- t( E4 w
1 w6 O3 b1 Z' W5 g/ c/ E6 Q
% z( ~% i" a, J, q% H* R
三个选项,第一个是添加或者新建管脚约束文件,第二个是添加或者新建源文件,第三个是添加或者新建仿真文件。那么我们选择第二个选项。
9 d T. {4 G: j$ T+ N
- f1 b6 @; p" `6 F A8 G
4 ~/ G" e/ M* R6 y7 q6 P( a
1 }& c, q. z5 M& X l+ _
) x6 ?. N( ~6 Y9 h5 a
选择好之后,点击NEXT。然后按照上图中所示,点击Creat File;
; u: n' m/ P( Y2 L) T( l3 u% d
/ Z( Z. F) y6 M' Q; X) t
1 t2 F5 r* r$ J1 S
, y6 L$ \7 U) z4 m' U r
% @ [" l& [' s$ ]* R
在File name一项中,填入文件名,其他保持默认,然后点击OK,再点击Finish。
% L- a& J4 ^- L, H
" A1 D6 [/ V( s" z4 @
. w$ M' ~4 d6 E$ l& e
/ {! Y7 ^9 D1 Q% ~- l
' V: |9 v5 B' i* i* \3 W, c |
此界面我们可以提前填入端口,选择好端口方向以及位宽。然后软件就可以帮我们写好代码的端口定义部分。如果不需要可以直接点击OK。
& Q/ A* r5 |; \5 u6 J. @) S0 _6 m7 a
3 {; x' i6 E' o$ @( _! z2 {
q f' J3 q! @- }4 x, W
* l: m8 S0 o# O& D' s
- _* Y5 J' I Z) @) b$ f9 N" O# Q/ F
再点击YES。
7 M% k7 P' D! W8 H+ ?. }
* O+ y7 B- z3 C( w新建好之后,会出现如下图:
0 B/ C: U' s- ^% |5 g% Z. r [$ }) p
& |! ^ S3 J& t N, e
; R& \( w* D8 e4 R5 N: X# G+ N5 B2 l4 j3 c8 R& s
0 g1 w) [4 s" Y1 A$ ?
在Design Sources中,可以看到我们新建的文件。双击打开开始写代码。自动生成的代码如下:
" Q2 J" Q: o( z
7 P7 z5 D, a2 u* B Q7 N$ m# [
& ]6 ^/ P% K7 U2 h4 t4 ]* q( L" \, O0 X; N: d
4 } k- c: K2 l7 d2 \
为了更好的向大家展示,我将代码文件中的注释先删除掉。代码如下:
' x8 {. a- u' c$ T {
5 o, c. E2 A! L& w
7 m! u5 H& S; T# Y) P2 c% o
+ J) ]% f; C* X
* F( T" L5 ^# h. G u0 ~, W5 H' u% U
为了验证代码的正确性,还需要写测试文件进行仿真测试。仍然点击+号新建文件,只不过这次我们选择第三个选项:
; e) P% {; ]' _( M0 v0 L
5 E% L& S7 ?; B& B0 u6 Z8 a$ L
3 M, y2 M8 N$ L& U' {9 O- A* J: j( r
6 H; A' Z8 d/ @4 D) @
7 K* t: Y0 y0 g! m1 r
点击NEXT;选择Creat File:
+ [& o/ {8 I4 m3 T t. {- }# a6 ^
( B! X! I4 g S& l
! `6 s a4 T1 X" j$ W4 d7 \
" p6 R0 y0 `# W; r8 z! v/ e
$ @1 m, {2 T' H% z
s. a9 }0 J ~0 `6 M3 w" K u9 e5 z0 B" Y+ y3 ^
: U P2 I# t' f! R" [0 L; K
# R( F5 m3 g+ v. ?
点击OK,点击Finish。定义端口界面直接跳过,因为我们的仿真文件没有端口。
# F. M& ~3 G3 P
: [# N: Z( o" |' q. H; M/ L) Q7 x1 d/ {
6 i( I- L; a% R# @5 w/ P
新建好之后,按照上图所示,双击打开文件。代码如下:
9 d9 [7 F0 }& U. T
$ c4 s+ t3 t) X- p% w
$ F! z ]$ y5 ] m/ _4 N% v! o
; W/ f0 m# k/ \! t
. J0 I7 l, d3 T$ [
7 y$ k& u2 Y" D7 d
我们可以使用随机数来产生我们需要的输入,代码写完之后,我们可以直接打开仿真。
8 Z0 y6 c. y; ^2 a, l5 ]
) b: X" y" V* J7 x) l* @& @
, [5 D, o- \5 C; e; q
* X" E( s+ u& z7 m6 C) s; {# v* J% n4 i; s* J- g* ^
9 g7 `# \' O: v4 X3 \. U
点击如图所示的选项,打开软件的仿真器。
2 p. f1 r2 D2 c1 y" R7 X: c
) O9 X x( C- d5 \
( L* |/ ^. i: m/ Q) }& J
* A" }+ }" V$ K" f, [) G
0 L u! H0 Y5 l" h
2 y9 g; l; |4 M1 ^; X
8 [4 ?+ |( h/ s6 r' [
仿真图打开后,我们点击如图所示的按钮,可以看到全部波形。在仿真图中,我们可以看到后半部分波形没有变化,这是因为我们随机数生成了20组,每组20ns,所以总时长为400ns。但是仿真软件是默认运行1us的,所以就看到了如图所示的情况,在此,大家可以随意生成随机数的个数。我们验证仿真时,只需要看前400ns的波形就可以了。按照波形显示,我们可以验证到波形输出与与门真值表相同,所以最终结果是正确的。至于下板验证后续再出相关文章说明。
- `! E9 b9 _& B4 v, W
, p+ o7 d* e7 _+ N1 }; x