|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 House 于 2019-4-1 15:01 编辑
. {8 z/ K. K _: p1 s8 q4 F$ B( x$ u( \# l7 ` f
第四个实验:学习调用IP核实现计数器我用的是quartus II 15.0的版本
6 O; r% \( P6 I" n* L3 C1 r" A4 z6 g( B+ e- k
先是建立工程然后使用counter IP核
' ]5 a4 I& A; A- Z2 d6 Q4 ]1 w. N1 \( u: ]
4 m* `9 p W. _; D+ @! S: E( z' B* j' z4 u5 y0 d& Y
8 o$ T O- `* t8 y1 l. ?3 X9 Z
* {5 n* K, r4 B9 V
& h ^4 {+ e0 ~2 K3 e5 r1 i配置counter 选择四位,向上计数,
/ _, t& I3 Y7 Z: y* `) Z) E; ]& m0 a+ F
计数输出是模的形式输出应为前面选择的是4位所以模最大是16 a- v6 H$ ]2 M6 x8 x: d$ K
这里最大输出10可以实现一个BCD码的设计
8 i, t2 e- C; l: I9 j) }. q) r选择carry in carry out 模式 " Z: \; `7 J2 o; V Y
0 c9 S9 T V! G. w
* C- B" E! ?% }7 n) x% r v3 \8 p: ?+ f! j0 C; ]
1 O3 L. f: p- q8 B
然后把点V的文件添加进来。
0 n3 g/ O9 i' g! e* ]" J k% _) e
n3 o5 n0 o( |; \, U, y- V
然后就可以分析和中合了。 / d! y4 j) Y4 A/ q# C
编译成功没有错误。
* I; i" S1 \% h& B1 F- v1 t. i1 w" l) b: M
然后开始写测试文件了
5 I: Z5 Y1 u% O' B3 j1 e, ~1 p3 p- ^testbench文件
6 e: Y$ P i! N l% b& H1 d* p这里使用了一个repeat()语句表示重复括号了面的次数 , P0 P7 Z4 D* [! d+ W& ]
- `timescale 1ns/1ns
- `define clock_period 20
- module counter_ip_tb;
- reg cin;//进位输入
- reg clk;//计数基准时钟
- wire cout;//进位输出
- wire [3:0] q;
- counter counter0(
- .cin(cin),
- .clock(clk),
- .cout(cout),
- .q(q)
- );
- initial clk=1;
- always #(`clock_period/2) clk = ~ clk;
- initial begin
- repeat(20)begin //repeat 重复5次
- cin = 0;
- #(`clock_period*5) cin=1;
- #(`clock_period)cin=0;
- end
- #(`clock_period*200)//延时200个时钟周期后停止工作
- $stop;
- end
- endmodule. t# O6 v+ g4 }& N2 f* m* l
5 Y- r7 P+ Q& | / ^0 ]" e& O) V' J
- y: @( C* n; h5 D U1 C7 d6 l8 S( E; M9 I& i
然后开始RTL仿真 . {8 D% h# [3 p% b
: ], E- J& r& N7 F& n" ^, t- n
符合要求计数从0到9 cout=1;
$ ]$ B& d& k& G6 M然后是连个4位的计数器级联
: r# j( h$ v9 j0 j% [+ }. q
, d1 G) B# m' i1 N% G, r+ L1 J建一个counter_top
. f* o& i6 ]: ?( w- module counter_top(cin,clk,cout,q);
- input cin;
- input clk;
- output cout;
- output [7:0]q;
- wire cout1;
- counter counter0(
- .cin(cin),
- .clock(clk),
- .cout(cout1),
- .q(q[3:0]));
- counter counter1(
- .cin(cout1),
- .clock(clk),
- .cout(cout),
- .q(q[7:4]));
- endmodule4 N/ ^9 } o$ T
9 r( A5 U7 H' d: h6 O
& v8 H; v; L" N+ G4 \5 w1 h1 e+ E) \& a6 @( q
) e. h' i, M* A, T然后RTL仿真:
% D2 ^" g* Y. C8 }# q# M; d& _$ l) j p, b
; M$ C3 K; @: b- [" R7 \, H* a
6 X- X8 L. a+ |/ G' _! m7 F' [符合
, m9 \9 o( I9 M |
|