電子產(chǎn)業(yè)一站式賦能平臺(tái)

PCB聯(lián)盟網(wǎng)

搜索
查看: 3583|回復(fù): 11
收起左側(cè)

求助帖 求大神幫我看看這個(gè)要怎么仿真?

[復(fù)制鏈接]

585

主題

910

帖子

4977

積分

四級(jí)會(huì)員

Rank: 4

積分
4977
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2022-7-18 15:06:53 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
library ieee;
, _6 k2 z$ y8 n, puse ieee.std_logic_1164.all;
$ D( Y, q, {$ K! [/ p# Y3 e8 buse ieee.std_logic_unsigned.all;8 D( K: o% [3 P# D2 H
entity taxi is
( M0 i+ ~/ s2 v5 Aport(clk:in std_logic;
* ]( m& c7 [4 o; \1 u* N3 _       start:in std_logic;8 x5 e% h/ ~" ~% t3 y( ~  m
       stop:in std_logic;+ O  E$ ~3 E% @5 P
       pause:in std_logic;; s( S) K' t8 A* `( I, L" U# @
       speedup:in std_logic_vector(1 downto 0);
0 s* B% t/ Q$ F3 H* _2 b       money:out integer range 0 to 8000;
8 `0 Z' {" j! ~0 O       distance:out integer range 0 to 8000);
" Z" q/ l6 b: [* Jend;
7 w. r/ p- i% N' N$ B, N( farchitecture one of taxi is
, m, y" H3 }% p+ W9 L5 Ybegin
/ y( M/ j8 M8 q- k" H' o, Iprocess(clk,start,stop,pause,speedup)
1 r& m) P/ J' q; J$ q1 [- r! M     variable money_reg,distance_reg:integer range 0 to 8000;
/ X. k& N" P; M# w     variable num:integer range 0 to 9;
4 l! v2 _* |9 R/ `     variable dis:integer range 0 to 100;
8 e8 u& L. l  @     variable d:std_logic;+ d& X2 n8 j6 B! _; e2 k
begin
" V8 F* ?5 N+ Q; f  O8 C$ N, P, cif stop='1'then  w' j& G: b" M: N& t
      money_reg:=0;
" |! m3 b- U& m4 b      distance_reg:=0;
6 u! o( M& y6 t6 o      dis:=0;
# @- M# A- w/ n      num:=0;
+ D. u( ^8 j0 B/ N8 n- B' r5 {$ Melsif start='1'then& \, F9 }# Z3 D! M+ x: L
      money_reg:=600;; w( R8 a! \, s  h) _: C
      distance_reg:=0;# Z5 }& F7 t8 J5 d, C2 M$ G7 [" {8 \
      dis:=0;3 @: |3 ]( V& o/ y( |3 Q5 i* K( X
      num:=0;& ]3 h) y: w. e& y
elsif clk'event and clk='1'then
- Z0 Y1 f& r8 [       if start='0'and speedup="00"and pause='0'  and stop='0'then9 \" H) |/ x+ ^) i& `
            if num=9 then
6 Y- U) b- T: n# d                 num:=0;
5 A. X0 ?* R8 h( b                 distance_reg:=distance_reg+1;( f/ F7 f6 Q3 j! X& F
                 dis:=dis+1;4 {4 f# s9 N1 M$ g
              else num:=num+1;
$ U. S0 H/ U& Z$ G$ J  ^              end if;8 C1 K" x" S5 T% h  X  v
elsif start='0'and speedup="01"and pause='0'and stop='0'then  h1 a5 |' P2 k. j9 C
   if num=9 then# [% }5 E) A3 ^% e
        num:=0;( Y5 V2 O( f) @$ [4 w
        distance_reg:=distance_reg+2;
1 ^3 I) Y& c5 V        dis:=dis+2;
% E8 t% d! }  _# [5 W7 M% g      else num:=num+1;5 y  q  R5 ]) c" ?
      end if;' [$ T( B8 V  |+ o: S' m1 G
elsif start='0'and speedup="10"and pause='0'and stop='0'then
: d, z0 R# i" }, r- s( D$ @! x. _    if num=9 then& |* E( ?" e( j9 g8 H& z# W
        num:=0;, q3 u) i, i% |* k
         distance_reg:=distance_reg+5;
9 w$ o6 ?5 n- g) i; R8 [0 p         dis:=dis+5;6 W" M9 b7 B) W& Y% d
    else num:=num+1;& q, D) i" I5 L7 B0 v# e
    end if;) @7 r( p1 w, d# q
elsif start='0'and speedup="11"and pause='0'and stop='0'then7 p. z+ d, ]+ [5 }4 P, Y
           distance_reg:=distance_reg+1;
+ }* Z0 p9 O1 J9 p          dis:=dis+1;  K& R  Z3 D- w, |' u% o
end if;
, N5 h& |! P+ x2 Uif dis>=100then
7 X% Q& z  u) G9 F0 c! h# o         d:='1';2 V0 G9 J1 S$ ?7 K! f
         dis:=0;; g. n. b  K8 J* z  l) n
      else d:='0';
1 U1 W& {! z( y8 B- t3 K* qend if;6 L+ p- W* C3 e* D
if distance_reg>=300 then
) Y) t: x' @: v- p- ?6 }! N- B       if money_reg<2000and d='1'then
  C4 x& e/ m* A+ Y+ H- O                money_reg:=money_reg+120;
0 [+ o5 c+ y6 F1 E/ x0 \5 O1 C2 L       elsif money_reg>=2000 and d='1'then
/ w, d. S1 `; j8 c) z             money_reg:=money_reg+180;
' D7 @  v% G" o, u       end if;$ [7 `; ]$ Z( w6 n; }
    end if;
! `: }  G8 B4 Mend if;( N# C" ~5 |' i7 `' X% z9 O+ F
    money<=money_reg;
. q8 t  G7 G, d, q    distance<=distance_reg;
9 A5 T! Z8 ?; X) C/ Z1 v! oend process;( O/ D' T* N2 V
end;$ e8 @" u8 u" U" J7 \0 R; c
程序是這樣的,

589

主題

924

帖子

4975

積分

四級(jí)會(huì)員

Rank: 4

積分
4975
沙發(fā)
發(fā)表于 2022-7-18 15:07:14 | 只看該作者

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有賬號(hào)?立即注冊(cè)

x

578

主題

858

帖子

4821

積分

四級(jí)會(huì)員

Rank: 4

積分
4821
板凳
發(fā)表于 2022-7-18 15:07:36 | 只看該作者
到仿真這里我實(shí)在是不知道要在每個(gè)輸入和輸出端口上面添加什么信號(hào),哪位大神可以幫我看看

579

主題

911

帖子

5007

積分

四級(jí)會(huì)員

Rank: 4

積分
5007
地板
發(fā)表于 2022-7-18 15:08:19 | 只看該作者
library ieee;
4 W! ?) x7 W( \) ouse ieee.std_logic_1164.all;
7 t9 I* i' [2 C& p: Uuse ieee.std_logic_unsigned.all;
, X, S; W* g, ^+ b7 q( V7 a" oentity decoder is" [. ]2 ~$ Y; [7 M0 u1 F$ m# y
port(clk20mhz:in std_logic;
* n# a. _% Z: r2 Z# U9 {  p      money_in:in integer range 0to 8000;
0 a" j4 A) ~, A" u5 y# k6 t, cdistance_in:in integer range 0 to 8000;
6 k) O, w0 L; ?scan:out std_logic_vector(7 downto 0);
4 {; s3 f  r3 l. o6 s2 y4 Xseg7:out std_logic_vector(6 downto 0);
' z  o" y/ o" c& q" e5 s& ?9 a: Fdp:out std_logic);
% N; E/ Y& q8 \  Dend;6 T1 q- X1 c% E, h3 v
architecture one of decoder is3 Z6 f* v, I: e! U# e
signal clk1khz:std_logic;  A# V! ^/ l* r* @: W# L2 f
signal data:std_logic_vector(3 downto 0); ) `6 P2 H& ]2 A. K. N
signal m_one,m_ten,m_hun,m_tho:std_logic_vector(3 downto 0 );
+ Z& p: l; V9 ?# T$ W7 H- qsignal d_one,d_ten,d_hun,d_tho:std_logic_vector(3 downto 0);
; T6 {+ c) S& m- c4 xbegin% t9 ^2 a5 O! M
process(clk20mhz)+ r* w& D, {6 P0 A+ {+ S: X) h
variable count:integer range 0 to 9999;: ~( U. a( ]. z7 L2 c
begin! O, f4 q! J2 Z2 k
if clk20mhz'event and clk20mhz='1'then
+ A$ \5 F" ]0 \. ~   if count=9999 then clk1khz<=not clk1khz;count:=0;1 z- O5 o0 W- Y# y( d
else count:=count+1;  O9 B! D" `* o
end if;
" y4 j6 V# W" {; F/ kend if;
/ O7 n: o4 n# ?% D+ ~end process;- B& h% k! R5 B! i- ^2 }- Y$ N7 [# X
process(clk20mhz,money_in)- e: R8 w1 w8 n. m  H
     variable comb1:integer range 0 to 8000;
$ k5 p1 |1 `6 w8 {; O variable comb1_a,comb1_b,comb1_c,comb1_d:std_logic_vector(3 downto 0);+ t) p, `" Z) c+ Z- o; A4 d
begin
5 a3 F( J2 y( J: p) G; Bif clk20mhz'event and clk20mhz='1'then# H: C( \0 P' Z# v5 P
      if comb1<money_in then/ {7 m9 ?* h/ s; P9 r
     if comb1_a=9 and comb1_b=9 and comb1_c=9 then
: R7 h- D3 \$ v% r( A     comb1_a:="0000";
  g3 Y/ [. o* L. d1 {8 S8 w1 ncomb1_b:="0000";0 ~+ L4 ?2 g' A& y$ s& h
comb1_c:="0000";+ `, r& R( l7 y: ?
comb1_d:=comb1_d+1;" g  c6 W* M# O' J( e' q. I% [9 f' m
comb1:=comb1+1;( K' X8 _/ p$ L
elsif comb1_a=9 and comb1_b=9 then7 O' r1 \9 T, O) F% h7 i
comb1_a:="0000";  ^' x/ p, I% _7 i; i
comb1_b:="0000";
6 F" \5 j1 E- L3 e- k7 g. @comb1_c:=comb1_c+1;" X6 P& c$ b% K5 G% p% |9 I
comb1:=comb1+1;
# i4 M1 \6 h$ Felsif comb1_a=9 then
/ K! m0 U% ~/ B$ X' T      comb1_a:="0000";
5 S! S* B* |) x7 zcomb1_b:=comb1_b+1;
- {+ J$ M3 p5 D; Z7 Acomb1:=comb1+1;0 y, V2 }7 }8 [2 X7 O' u
else
* j$ q) N) N- y2 j- C      comb1_a:=comb1_a+1;8 s# V0 z0 E' ?. Q, x, E
comb1:=comb1+1;
/ k" U+ J0 U3 a/ ?( E  end if;
9 H- V6 t8 x; I; q3 H9 @( Z2 E  elsif comb1=money_in then
# i! W  x# C+ C/ a     m_one<=comb1_a;7 t1 l" |/ A6 c( H
m_ten<=comb1_b;: k8 H6 R" `1 H' j$ A
m_hun<=comb1_c;
* j7 ?2 Y5 @9 c3 K9 p. m+ Dm_tho<=comb1_d;8 `/ L/ f8 ^0 ?+ d4 z
elsif comb1>money_in then5 d* t5 u" L  k& T
           comb1_a:="0000";! l* @* D  [, P) U
     comb1_b:="0000";8 p8 h3 s; `1 G6 A' i+ T9 P2 u6 q/ @
comb1_c:="0000";3 h, }0 X/ U$ d+ a; J
     comb1_d:="0000";
( p2 Z, T4 B8 d! icomb1:=0;- @3 d! `+ K/ b* H, c+ z
end if;3 ?2 _" ^# c4 `' S
end if;' x& q- y* s7 Y! L
end process;
  @& Q0 |1 K1 }0 Aprocess(clk20mhz,distance_in)8 [. F) Y7 _! u" h- J6 ^5 B
      variable comb2:integer range 0 to 8000;# z& k& H  y5 O9 M( N1 [
variable comb2_a,comb2_b,comb2_c,comb2_d:std_logic_vector(3 downto 0);
  g( n; p# Q: J. ]begin; ]5 F) m3 v% `
if clk20mhz'event and clk20mhz='1'then
' t5 a0 R  i8 L; D! z, Y: e      if comb2<distance_in then
) r# D$ E+ p* R8 s+ Z            if comb2_a=9 and comb2_b=9 and comb2_c=9 then' e; e1 [# t6 R- A/ T1 b( g" s
                 comb2_a:="0000";
2 K/ X6 T+ k/ |' {$ M3 R3 }          comb2_b:="0000";
3 x; e$ s. c" H0 `, c7 d  J          comb2_c:="0000";0 ?( r) i$ [3 Y% E/ ?
    comb2_d:=comb2_d+1;
( `7 c7 E2 K' `( \# I    comb2:=comb2+1;
9 \' g3 \1 {( F$ L" A# A; {elsif comb2_a=9 and comb2_b=9 then
# A$ j+ L4 X$ j" I* @            comb2_a:="0000";
9 c$ m2 U5 O" X$ K' U# J/ t       comb2_b:="0000";' w0 M; j8 Z  f0 c+ ^- j2 b% a
    comb2_c:=comb2_c+1;$ o! W  {, x' f4 n& S, \
    comb2:=comb2+1;5 C5 ^# D& t% ^/ D4 p  D
elsif comb2_a=9 then
( R6 M; V, H$ [" D            comb2_a:="0000";% @6 r: J( e! j/ A
      comb2_b:=comb2_b+1;; S& m) L, u: j
      comb2:=comb2+1;4 }- z0 B- w8 p, {6 D/ I
else& X9 J/ n' C8 Z: z  I4 o: ^* k- l
               comb2_a:=comb2_a+1;
0 v! a2 l( O7 Y  a' N( ^, P      comb2:=comb2+1;* _+ f6 ~* O# K  i' O" p$ _
end if;+ X6 U* b/ v! ~+ }" F; Q+ }8 K& x0 Q
     elsif comb2=distance_in then1 z. a* z- k* o+ N9 L3 U
               d_one<=comb2_a;
* }# W9 X6 M0 J6 ^         d_ten<=comb2_b;
$ g8 F3 H9 \" V  y5 t& r) o) ?      d_hun<=comb2_c;* n' a2 Z5 w6 b
      d_tho<=comb2_d;' z: C3 {# C6 S& B' Y
elsif comb2>distance_in then: U+ W) _% v: J8 o
               comb2_a:="0000";
1 @) S, l$ b6 y. L9 W        comb2_b:="0000";- B2 h# P6 v" P2 H/ ~: Y, D8 V9 N
        comb2_c:="0000";
* D9 \" O: z9 _; o! j* R        comb2_d:="0000";. l" \5 D& Q! |" [* n
        comb2:=0;/ e( G* Z9 B+ I. ^9 H! }+ m1 \
   end if;. u, A3 G7 j  t* R: Z. i% N
end if;; [# ^& e# P! M2 z
end process;
3 B5 _2 k# J8 L; |5 C& s0 ~* `6 sprocess(clk1khz,m_one,m_ten,m_hun,m_tho,d_one,d_ten,d_hun,d_tho)
2 F' R' O  W% o$ S$ hvariable cnt:std_logic_vector(2downto 0);
: x" x6 P0 O2 O% ?begin3 k4 W" H! d( _* g6 m! ^0 z
if clk1khz'event and clk1khz='1'then+ w# s. f* Y' o# J. n& b. h& z: M- [
      cnt:=cnt+1;+ e6 ^+ V9 q) ~/ ]- d' h7 o. {
end if;$ [% B* a' {4 j# D% f' [
case cnt is
+ u4 a- C6 [, l' w3 Q      when"000"=>data<=m_one;dp<='0';scan<="00000001";
5 {0 C9 j+ _* v+ [; x- K7 k      when"001"=>data<=m_ten;dp<='0';scan<="00000010";. e! _3 q) f+ P* w: W! Y
      when"010"=>data<=m_hun;dp<='1';scan<="00000100";
' o& W6 |/ e2 B% C) F* y/ R      when"011"=>data<=m_tho;dp<='0';scan<="00001000";
  }7 r  M4 Z5 L  when"100"=>data<=m_one;dp<='0';scan<="00010000";
$ L/ g8 O) J0 z0 P% \- [$ u- b/ @# S& y      when"101"=>data<=m_ten;dp<='0';scan<="00100000";
" O/ G0 a- w; [* K; _      when"110"=>data<=m_hun;dp<='1';scan<="01000000";
9 e# Y6 Q  h2 J      when"111"=>data<=m_tho;dp<='0';scan<="10000000";( E2 @5 I1 ?4 f
end case;
) I  C  b7 b8 ~8 ?end process;
. B/ n$ ^0 G1 ~process(data)
4 _, `  S) R" \begin; p5 H# y0 y/ t' j) q/ n) N
case data is5 v3 _! y5 J+ j# g' H
     when"0000"=>seg7<="1111110";
/ x7 \$ a, ~2 b+ S& R+ Q when"0001"=>seg7<="0110000";, K! z, _3 b8 a: `; f
when"0010"=>seg7<="1101101";/ `, t# T0 Y& S4 U7 l0 I
when"0011"=>seg7<="1111001";
( h0 f  N- y- n  ^7 i* A2 } when"0100"=>seg7<="0110011";# D8 p; |4 S" i, h/ ?: w9 N' t
when"0101"=>seg7<="1011011";. s+ `3 G3 S; \; a
when"0110"=>seg7<="1011111";# M! V6 [: H8 C, C) j6 L
when"0111"=>seg7<="1110000";- V# A# l8 Q/ D
when"1000"=>seg7<="1111111";2 U9 X# t; b4 F3 R- h
when"1001"=>seg7<="1111011";
8 X  ]* v9 t6 R. { when others=>seg7<="0000000";/ c8 A* A2 ?& Q1 F" G1 \! z* M
end case;# A; l/ v; q2 d  U+ A
end process;
9 W, u0 Y! }0 _0 i: s5 w# ?. Mend;' Q: L9 V$ l0 V( z; e2 |! Y1 W

2 Z7 S- W7 C$ j1 I; D' Q; `. ~6 U# N, m
: m, z8 Z+ `, \2 D! |( i; E8 e* }+ k9 F

" C$ P/ R$ d3 V' d2 K, y: q第二個(gè)程序是這樣的

578

主題

936

帖子

4943

積分

四級(jí)會(huì)員

Rank: 4

積分
4943
5#
發(fā)表于 2022-7-18 15:09:05 | 只看該作者

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有賬號(hào)?立即注冊(cè)

x

579

主題

911

帖子

5007

積分

四級(jí)會(huì)員

Rank: 4

積分
5007
6#
發(fā)表于 2022-7-18 15:09:35 | 只看該作者
第二個(gè)模塊的仿真哪一步是上面這個(gè)圖

604

主題

947

帖子

5151

積分

四級(jí)會(huì)員

Rank: 4

積分
5151
7#
發(fā)表于 2022-7-18 15:10:35 | 只看該作者
沒人嗎?

657

主題

1025

帖子

5598

積分

四級(jí)會(huì)員

Rank: 4

積分
5598
8#
發(fā)表于 2022-7-18 15:10:41 | 只看該作者
求大神幫我仿能真一波  并且把這兩個(gè)模塊的接線后的仿真也做一下謝謝了畢業(yè)設(shè)計(jì)現(xiàn)在就差這一步了下圖是連接完成的仿真圖& ]# F2 f2 k, l2 u$ ?1 O7 N

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有賬號(hào)?立即注冊(cè)

x

568

主題

922

帖子

4783

積分

四級(jí)會(huì)員

Rank: 4

積分
4783
9#
發(fā)表于 2022-7-18 15:11:04 | 只看該作者
哦不是仿真圖 是將兩個(gè)模塊的連接到一起的原理圖

598

主題

943

帖子

5138

積分

四級(jí)會(huì)員

Rank: 4

積分
5138
10#
發(fā)表于 2022-7-18 15:11:10 | 只看該作者
自頂大神在哪里?

發(fā)表回復(fù)

本版積分規(guī)則

關(guān)閉

站長推薦上一條 /1 下一條


聯(lián)系客服 關(guān)注微信 下載APP 返回頂部 返回列表