電子產業(yè)一站式賦能平臺

PCB聯盟網

搜索
查看: 3769|回復: 11
收起左側

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

[復制鏈接]

585

主題

910

帖子

4977

積分

四級會員

Rank: 4

積分
4977
跳轉到指定樓層
樓主
發(fā)表于 2022-7-18 15:06:53 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
library ieee;
6 Z+ ~* e% v3 t. ^/ xuse ieee.std_logic_1164.all;
2 G) k7 x4 W+ ?* y  ~use ieee.std_logic_unsigned.all;
  m. b. Y# }( \* x+ _" N+ f" Dentity taxi is
0 z, ~- y  `( E8 u5 aport(clk:in std_logic;
: m0 _- k; m/ q       start:in std_logic;$ W& E. P, d' o8 C
       stop:in std_logic;. \) y0 ~" s6 c2 `% I
       pause:in std_logic;* ]  E/ d% ~, ?
       speedup:in std_logic_vector(1 downto 0);
0 Z$ I9 _+ l6 g! f       money:out integer range 0 to 8000;9 ~9 i+ C5 q8 B9 m) X' s
       distance:out integer range 0 to 8000);
% \+ h- L* ]1 J4 }5 ]end;8 e. X1 J5 ?! [( ?5 V4 V" J" F
architecture one of taxi is2 _1 p4 l$ @: J7 D
begin8 A# t2 Z9 h% f6 l
process(clk,start,stop,pause,speedup)- m( E& e6 U$ L8 a! z5 x4 }; T+ v7 R
     variable money_reg,distance_reg:integer range 0 to 8000;0 P, F. H( T# d7 q
     variable num:integer range 0 to 9;+ s9 E" g3 U6 x( p2 \: I
     variable dis:integer range 0 to 100;
5 n. t. X  U  s* U; W     variable d:std_logic;% y) a. y3 H4 _
begin* O5 f) N( ^& z4 A9 }
if stop='1'then
  k% R, r0 L1 T      money_reg:=0;9 j9 I4 _. e* n' @* a% {2 B/ m
      distance_reg:=0;; C1 s3 b/ `* H  c' ?7 b
      dis:=0;& S$ v% v4 W8 w; S7 m* ^! I& r% C
      num:=0;
0 S3 m% T& A& _8 D+ q& O1 velsif start='1'then
: o) z8 ]  z5 C5 g. c, G      money_reg:=600;7 S3 _; l: x  \: g! ]6 [
      distance_reg:=0;
* O! d; S) v8 o7 h% R      dis:=0;
1 j- O4 u7 ^- _% o- J      num:=0;
( z4 K3 h4 K; C8 W- e  d% I6 Pelsif clk'event and clk='1'then' X" _2 C! h6 E+ w& G. @- S
       if start='0'and speedup="00"and pause='0'  and stop='0'then' G# k, i/ p8 i! g2 X0 T9 o1 l2 C
            if num=9 then
$ F* F" I7 p5 I; l                 num:=0;0 o5 V0 r; G7 c9 }0 m+ A( L4 a
                 distance_reg:=distance_reg+1;% F6 N0 x* k- G$ ~/ E% W: ]
                 dis:=dis+1;$ O+ G. {4 @4 J
              else num:=num+1;
. ~' H! |; y" `! K0 [" w( V) f8 V              end if;9 x8 O0 v& C& t
elsif start='0'and speedup="01"and pause='0'and stop='0'then0 s; p' R4 @( L' `+ j
   if num=9 then
4 _* d  p4 o2 J9 X' k6 v8 E        num:=0;- k, m; q' F# @! u% z3 Q( _
        distance_reg:=distance_reg+2;
5 I0 N, X/ R0 b" o) y6 ?        dis:=dis+2;
) q2 k. Y  m; D# y) f& Z      else num:=num+1;
. x: K' A; {1 u3 {. U2 L4 l      end if;
& \3 d9 a3 D8 v# }% Celsif start='0'and speedup="10"and pause='0'and stop='0'then
1 K: m, M5 g7 v0 ^    if num=9 then: I& H. X* J) E( D
        num:=0;
( t7 o% c6 b8 G4 |+ B         distance_reg:=distance_reg+5;& r# s8 c9 G: d% {+ W4 n
         dis:=dis+5;
  U* y* t: I( p+ m: Y6 ]    else num:=num+1;
2 a" u: V& o, M% z$ X2 |    end if;$ T6 F/ a$ A$ d
elsif start='0'and speedup="11"and pause='0'and stop='0'then
2 ?, R$ o- C  a0 u8 Y           distance_reg:=distance_reg+1;
3 K1 y) m7 z0 q0 v. ~7 q          dis:=dis+1;. k7 g" m: Q% X* H* I4 Z
end if;
" Q4 k6 _- R! t9 Yif dis>=100then
2 C3 Y3 Q1 E  x* j         d:='1';
8 O" a/ a4 C/ e+ s( B8 o$ [         dis:=0;, q; _2 C1 E3 Z
      else d:='0';
0 t: A! Z4 F1 f7 L5 u3 Q. {end if;
) O& {# s- Z) }7 b( w% z5 l* \if distance_reg>=300 then
6 T% H# {- p: B) O       if money_reg<2000and d='1'then
+ R7 ^4 C, T# E" Y9 j  @& E                money_reg:=money_reg+120;' y. f+ u# c) A- a: K8 Y2 f, F
       elsif money_reg>=2000 and d='1'then
$ Y6 G* @; o; s+ G! X             money_reg:=money_reg+180;
" X' f2 q1 |& S- v# q! _! I, H2 ]       end if;; r. h) V8 C& s# t* |
    end if;
. h: F* C$ u, }8 ~& Kend if;9 ^* D7 C5 o. S9 E* ~0 I5 S7 H
    money<=money_reg;
) F" i( ?; e: \9 J; X" W, d    distance<=distance_reg;
% z5 k# K9 G/ Lend process;/ Z) e' n/ J' m  M% X. W" m
end;* Y$ ?3 ^/ r; N, D" X7 r7 S3 ]
程序是這樣的,
回復

使用道具 舉報

589

主題

924

帖子

4975

積分

四級會員

Rank: 4

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

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有賬號?立即注冊

x
回復 支持 反對

使用道具 舉報

578

主題

858

帖子

4821

積分

四級會員

Rank: 4

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

使用道具 舉報

579

主題

911

帖子

5007

積分

四級會員

Rank: 4

積分
5007
地板
發(fā)表于 2022-7-18 15:08:19 | 只看該作者
library ieee;
& f' h8 J- f/ J$ b; Iuse ieee.std_logic_1164.all;9 ^5 I# ?1 R1 }. ^, ]
use ieee.std_logic_unsigned.all;6 ]3 ?$ x+ z3 W4 o- l. I  e: r
entity decoder is
5 Y: w  N. o/ gport(clk20mhz:in std_logic;
$ A5 a2 L( O- ]' G& g9 W      money_in:in integer range 0to 8000;/ N5 ^8 {3 x. A  s+ w) o1 v- N# g
distance_in:in integer range 0 to 8000;( y, G% W% q! m/ s7 _6 c& r
scan:out std_logic_vector(7 downto 0);- i2 E8 T$ q; t2 h
seg7:out std_logic_vector(6 downto 0);
7 n' n4 h, F) \8 S( Udp:out std_logic);
3 T1 S/ T$ H8 Q& q' dend;
) ^: C: u4 c0 D: _architecture one of decoder is, q' |- p2 V4 p3 z
signal clk1khz:std_logic;6 Y9 o0 L- o* N' `8 D
signal data:std_logic_vector(3 downto 0); ; j8 T! `$ D* ?6 D9 v! b6 T2 f2 n
signal m_one,m_ten,m_hun,m_tho:std_logic_vector(3 downto 0 );
! }4 `1 I  m6 o- G# ]signal d_one,d_ten,d_hun,d_tho:std_logic_vector(3 downto 0);5 @7 E9 B$ V7 j
begin
0 ^* X& R8 C$ {' `& B% s6 Z* ]; ~process(clk20mhz)
, }; r. n2 H/ p# ^) Rvariable count:integer range 0 to 9999;
0 z; N: x4 u, I: o6 R) J, rbegin8 s; U) _6 l* g0 N4 z! s; `
if clk20mhz'event and clk20mhz='1'then
2 }) ?$ Z* m" o. }: k9 v; D2 a   if count=9999 then clk1khz<=not clk1khz;count:=0;
7 g- ^. m5 c( o2 Y* |, W% N1 A& melse count:=count+1;% v0 X- H4 Y2 N& K0 h
end if;
- b) ?& z9 O5 y" V# |+ Jend if;
3 h7 N& d+ W5 O( a" u* c: j6 eend process;
6 D3 F2 d; E4 @" ^process(clk20mhz,money_in)
& L/ n0 p5 n; h0 C$ w2 A     variable comb1:integer range 0 to 8000;% M, ], q; \2 @+ [: x/ a: T
variable comb1_a,comb1_b,comb1_c,comb1_d:std_logic_vector(3 downto 0);. A5 X1 W. Z3 {: B' X2 O3 O( P
begin
! [. u% R( S7 l" Gif clk20mhz'event and clk20mhz='1'then
6 t0 F# }4 K, f/ q      if comb1<money_in then
+ r! G- j1 c4 H0 @' ^, c     if comb1_a=9 and comb1_b=9 and comb1_c=9 then
- j' S: w; U$ w. S* N- G- c     comb1_a:="0000";& f! L+ O  h/ h7 a$ a9 I: a
comb1_b:="0000";, ]& N# a  j5 t' [
comb1_c:="0000";7 O( p! J* W0 ~- ]# u, @
comb1_d:=comb1_d+1;3 p0 R) c+ x. |  ~7 C4 t
comb1:=comb1+1;% ?! k, e. J+ j) H. K7 I
elsif comb1_a=9 and comb1_b=9 then
8 a: \( [& ?/ q" T3 j# L1 Ecomb1_a:="0000";
# x9 A2 `# N3 p+ R# r0 V( f+ bcomb1_b:="0000";5 i' J- S, I# L6 P/ e- g
comb1_c:=comb1_c+1;
3 K. j: p+ f5 r- fcomb1:=comb1+1;
/ B4 f) z9 n9 f/ C. ~elsif comb1_a=9 then. V5 U8 P+ C% F% b! G9 O4 P
      comb1_a:="0000";
. T8 B- p; c% ^1 M- y/ d7 X8 Ecomb1_b:=comb1_b+1;
% ?% A- U& T2 O% hcomb1:=comb1+1;; }7 g; R$ M5 b$ O( f) a
else
- e. i$ j) |) [, z: v% T% [      comb1_a:=comb1_a+1;$ g0 A4 }* A5 s, e8 v4 Y+ Y
comb1:=comb1+1;
. g+ ]- c/ ~6 a: D8 n  end if;
3 [$ n  @1 F! p$ P5 z$ z+ g& R  elsif comb1=money_in then
) B( T: w0 ^' j1 }; e1 t4 E) M, \3 X3 x     m_one<=comb1_a;
# J& @" g6 z8 z+ h: G( [m_ten<=comb1_b;
# D0 r8 d; I# dm_hun<=comb1_c;
6 c6 S+ Z: {7 |4 T+ V) E* Bm_tho<=comb1_d;
# a0 y+ {+ m; D( B' n# o1 W* uelsif comb1>money_in then
$ A3 _& i  f+ E5 ?           comb1_a:="0000";% X7 j7 h, n  s: [0 I
     comb1_b:="0000";
; p* u. }; ^2 U( Z) ncomb1_c:="0000";
9 b9 E! E$ Y& ]7 K1 d     comb1_d:="0000";% m# `) M8 a# Y! O8 p
comb1:=0;! F! c6 ^+ ~4 J/ U3 s* E4 S& k
end if;# n1 _$ I2 b+ R. J
end if;2 ?8 R9 A# f" _5 e& g- U: r0 k
end process;
; V7 W0 f8 u# {  Oprocess(clk20mhz,distance_in)+ x0 L1 }9 [9 L2 m7 H% R7 S5 a
      variable comb2:integer range 0 to 8000;
5 _# q& [% a; r2 rvariable comb2_a,comb2_b,comb2_c,comb2_d:std_logic_vector(3 downto 0);, `( z2 T8 A% x+ p* M- {3 X
begin. ?9 Z) ~% U/ F
if clk20mhz'event and clk20mhz='1'then
7 S# ]- \" ?$ t0 N% ^# C9 u      if comb2<distance_in then% }" n% s9 X1 n; u6 }; h+ f
            if comb2_a=9 and comb2_b=9 and comb2_c=9 then
0 l% }: B6 g4 M! m                 comb2_a:="0000";2 `( ^- w; j& ~8 x
          comb2_b:="0000";) d3 y4 q/ e" K* G: D& M4 s/ H
          comb2_c:="0000";
, _; {  W+ `: e% w! [8 W" V    comb2_d:=comb2_d+1;
- _% s: G+ |5 ]3 S% ^" ^+ q6 {    comb2:=comb2+1;" K) J* U) C6 \( V/ C7 R* E2 y
elsif comb2_a=9 and comb2_b=9 then4 N+ x0 }( x# d( V: i" a
            comb2_a:="0000";
* U- |& a9 s1 Y" W( v       comb2_b:="0000";% M9 r" G7 k- C" j
    comb2_c:=comb2_c+1;" w* b2 n& a0 `  j
    comb2:=comb2+1;1 ]* h, p* n* S: [( n" e# w; Y
elsif comb2_a=9 then
- X% |% S4 T  o/ S6 \- z6 s, o: p6 t3 N            comb2_a:="0000";
. f' c6 k* {& y4 N/ _9 V# @      comb2_b:=comb2_b+1;" o; N' k2 f  {1 D  C
      comb2:=comb2+1;9 I- t) k" T4 M/ n! N9 U* i
else  D7 X$ N" J! t4 b) i6 @
               comb2_a:=comb2_a+1;
' b) m1 W" O; }- }; r4 H      comb2:=comb2+1;
) Y6 A7 l: i7 D3 \4 ?( |end if;
, b/ \" j4 q% \+ D; }& u$ k     elsif comb2=distance_in then
. `, M) T+ }' d0 y* e               d_one<=comb2_a;
' `3 a- V; {) c; n         d_ten<=comb2_b;' k' B# L; [2 b% M: b* ?9 C
      d_hun<=comb2_c;; u, w- q8 G+ E& j8 Z  ~4 s0 i
      d_tho<=comb2_d;
; b+ G" {, L" n" U! H8 n: P+ Zelsif comb2>distance_in then: P% |  O0 P0 x0 I) t
               comb2_a:="0000";
$ d0 P- c- q! O2 Z- o1 n        comb2_b:="0000";. m2 Y+ F/ D' P$ l
        comb2_c:="0000";! O/ p! I7 {7 T; e
        comb2_d:="0000";
! H- U4 l$ y4 Y4 I. P        comb2:=0;6 _8 E' v$ s% y" b
   end if;9 \: d$ E. }) q- |) _$ L9 K$ x
end if;' B0 C% ?  e, J- k& Q0 z* Q
end process;+ h% Z' [( a6 Y+ d
process(clk1khz,m_one,m_ten,m_hun,m_tho,d_one,d_ten,d_hun,d_tho)  f5 D7 v" A3 S- S
variable cnt:std_logic_vector(2downto 0);$ X3 Y) q" K/ {( b0 I
begin# x! q% }6 C: a# L  s6 D
if clk1khz'event and clk1khz='1'then
2 b% M& O6 O" i- h      cnt:=cnt+1;5 i% t% V' C  z5 G- V
end if;
/ [- @  N3 c+ x: `; y& u, xcase cnt is
6 h* M/ b5 L: w3 v      when"000"=>data<=m_one;dp<='0';scan<="00000001";
5 h2 X1 ]# ?; D      when"001"=>data<=m_ten;dp<='0';scan<="00000010";
& V5 |4 J5 N% P0 I      when"010"=>data<=m_hun;dp<='1';scan<="00000100";
& {1 v( R* f; T' D* l3 l: i' ~' Q      when"011"=>data<=m_tho;dp<='0';scan<="00001000";- J# [/ Z1 p! @3 e
  when"100"=>data<=m_one;dp<='0';scan<="00010000";
+ X& d( q8 D) W) i, v$ b! W      when"101"=>data<=m_ten;dp<='0';scan<="00100000";
5 \3 y3 m# j7 W9 L$ I6 N      when"110"=>data<=m_hun;dp<='1';scan<="01000000";
2 i/ q' ]+ _5 Q1 Q3 h. t$ h      when"111"=>data<=m_tho;dp<='0';scan<="10000000";* H$ b! o" H6 _- A2 i/ q
end case;
6 Y/ Q4 g2 `# C$ W# f' {- ~end process;* B$ u$ f1 c! q) |' L( d
process(data)- v- n$ s: E5 G1 P9 ^
begin) b! P) c! P* r  s; J1 \
case data is- \/ b1 r3 E6 p/ ]: }, f
     when"0000"=>seg7<="1111110";5 ^( T1 u/ G0 x4 E/ n
when"0001"=>seg7<="0110000";$ T: @4 H: ~( J0 }- S- X
when"0010"=>seg7<="1101101";% N# y: p# ^) z1 V  s% r, P6 l
when"0011"=>seg7<="1111001";, D* _( I% z9 z8 }
when"0100"=>seg7<="0110011";
+ ^& c5 z) h6 q7 _ when"0101"=>seg7<="1011011";+ t, f  h$ S  `2 q
when"0110"=>seg7<="1011111";
6 u/ ~* E. ^) Y& S- ~) I$ F when"0111"=>seg7<="1110000";9 \- T2 `, c: z
when"1000"=>seg7<="1111111";
1 h' }7 y# u( w+ {9 m# ]" b# X, L when"1001"=>seg7<="1111011";
  ~' V! s% `8 J4 p" k/ q3 X when others=>seg7<="0000000";3 a/ T! `# R# [) d
end case;1 Y# J  E% L7 @( p* A) W6 z
end process;. y7 a2 e+ a4 J' M: r- ~, S
end;
, m  e% t2 p7 K- S$ p4 A* O: _- [4 t- ?& |  I7 C( \
' f5 C! m( T5 `) I: u/ X1 _
+ q$ R" t- f# o
( |' E3 j) d, Y9 H, V' _
第二個程序是這樣的
回復 支持 反對

使用道具 舉報

578

主題

936

帖子

4943

積分

四級會員

Rank: 4

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

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有賬號?立即注冊

x
回復 支持 反對

使用道具 舉報

579

主題

911

帖子

5007

積分

四級會員

Rank: 4

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

使用道具 舉報

604

主題

947

帖子

5151

積分

四級會員

Rank: 4

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

使用道具 舉報

657

主題

1025

帖子

5598

積分

四級會員

Rank: 4

積分
5598
8#
發(fā)表于 2022-7-18 15:10:41 | 只看該作者
求大神幫我仿能真一波  并且把這兩個模塊的接線后的仿真也做一下謝謝了畢業(yè)設計現在就差這一步了下圖是連接完成的仿真圖4 Q, ^8 o8 u. k( t- Z6 o/ q" N

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有賬號?立即注冊

x
回復 支持 反對

使用道具 舉報

568

主題

922

帖子

4783

積分

四級會員

Rank: 4

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

使用道具 舉報

598

主題

943

帖子

5138

積分

四級會員

Rank: 4

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

使用道具 舉報

發(fā)表回復

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則


聯系客服 關注微信 下載APP 返回頂部 返回列表