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

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

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

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

[復制鏈接]

585

主題

910

帖子

4977

積分

四級會員

Rank: 4

積分
4977
跳轉到指定樓層
樓主
發(fā)表于 2022-7-18 15:06:53 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
library ieee;6 [7 |, Q/ G2 M+ C, i
use ieee.std_logic_1164.all;
0 X9 A) r% v. ]) uuse ieee.std_logic_unsigned.all;
' D: R/ z5 j( c) j4 Q0 D2 yentity taxi is! N/ ?' F* g% `
port(clk:in std_logic;
# |5 U  }- B' v4 N+ b       start:in std_logic;
% |& e2 O. [1 o- x/ A* N" b       stop:in std_logic;0 S& u4 _3 W5 i( I1 t; ]
       pause:in std_logic;
7 t4 q6 W9 @1 v+ V  b  e0 s       speedup:in std_logic_vector(1 downto 0);
5 a1 k& J3 N7 M( Y2 s" Z6 F       money:out integer range 0 to 8000;
. u, k7 Q, @% ^$ N' i/ F       distance:out integer range 0 to 8000);
2 {- z' I2 l, q4 T5 e7 F9 g4 L( A  ^end;' [. X5 p$ l' _
architecture one of taxi is
2 C2 H# {4 h% a3 u) B4 ebegin: r) ]  j6 v3 ]
process(clk,start,stop,pause,speedup). i' ]$ q2 c$ X  l8 l( [* z2 x
     variable money_reg,distance_reg:integer range 0 to 8000;
: D# c& {% v; g( x) q" e     variable num:integer range 0 to 9;, O/ e/ M) z. {$ a8 p4 E5 J
     variable dis:integer range 0 to 100;9 r( |9 p. o1 C. c5 ^2 S/ [* }/ u
     variable d:std_logic;
8 \; e$ t; z. Xbegin" h( [  J' D( p8 n1 E+ n
if stop='1'then
" ^# G0 K6 V8 H0 M8 Y* R5 U4 O% \      money_reg:=0;
+ b. G8 _1 i4 `* f      distance_reg:=0;
* e4 z% M0 V+ K4 I2 o& I7 G      dis:=0;% C) x7 s& y4 x$ d1 [6 V9 j
      num:=0;
7 U3 `; m- a  [3 ~' K" eelsif start='1'then
9 a. l3 `' }; d2 x      money_reg:=600;# S3 M9 {+ P0 r; b2 B
      distance_reg:=0;' j' l; ?! _3 T/ q8 p
      dis:=0;* A7 W9 Z. Q! W, T
      num:=0;
) o: }9 t0 K' }( K) V- Z* Y8 Eelsif clk'event and clk='1'then  g* d. N( ]9 B4 Y, ^
       if start='0'and speedup="00"and pause='0'  and stop='0'then
6 ?8 i8 @! a/ w) @9 E            if num=9 then
6 i4 Z% j; j0 K! V& Y                 num:=0;
# B3 F) `5 q4 ^7 |                 distance_reg:=distance_reg+1;  M# `0 z) l: }$ w: _
                 dis:=dis+1;
, {: I$ ^+ \9 M0 _3 |+ J              else num:=num+1;
- D) ~) a/ r7 N) D0 u              end if;
3 P, R4 ^& N7 x$ @4 V' Z! |elsif start='0'and speedup="01"and pause='0'and stop='0'then
5 F, P! d" |' u- r+ Y+ m& H8 n   if num=9 then9 X4 l- p8 g5 ]) A: Y
        num:=0;, |  D3 L2 g& b* ^" i4 |7 a& P' O0 v
        distance_reg:=distance_reg+2;& p5 i2 B( Q, U7 V+ Y9 ~) y
        dis:=dis+2;9 A. W0 k! K# U
      else num:=num+1;3 b) X$ K2 }1 t- `/ d) n4 ?
      end if;: j( i( u1 Z$ B/ p: s
elsif start='0'and speedup="10"and pause='0'and stop='0'then3 s/ h3 Y3 ~0 F# Z9 ]
    if num=9 then
! A6 U, U8 m; e' i0 ~3 \( }        num:=0;% f; h4 H# ?7 d' C+ H
         distance_reg:=distance_reg+5;2 l2 ?; K% q$ k# R
         dis:=dis+5;
5 W+ b; |+ `$ _4 d3 x    else num:=num+1;0 ^- y  V9 H: p# X8 g5 a
    end if;* m& C% D2 ]  o( q
elsif start='0'and speedup="11"and pause='0'and stop='0'then
$ N8 ~6 f3 m& Y/ k) r           distance_reg:=distance_reg+1;- D' Y  R* t% x$ |6 M
          dis:=dis+1;
6 B9 c2 `7 a- {5 Iend if;
. }% n; n8 q7 n$ Q0 Zif dis>=100then
, @! h0 X# C6 O8 Z6 C  V         d:='1';4 |' P9 m9 d" j" ~
         dis:=0;
+ _9 I+ j! o3 ]/ E# }4 B7 I      else d:='0';
" R5 j/ s% v8 dend if;
9 M( q8 z6 I8 y$ F9 E8 s$ Lif distance_reg>=300 then4 O( s/ N$ b# O" r4 Z
       if money_reg<2000and d='1'then
2 g- e, Y* K& @+ k                money_reg:=money_reg+120;! i  I- U  w& h1 n  w
       elsif money_reg>=2000 and d='1'then
" C9 Y2 b: \9 j. K* ?" J             money_reg:=money_reg+180;: N- O* v2 m. J; M4 t6 A/ m) X
       end if;
3 c$ O. T: L1 U' _! y2 W5 \7 m    end if;
* @9 V1 q) Q  t5 Z# D/ h  mend if;
7 w/ d2 |. f- {8 Y. r5 q    money<=money_reg;
0 J8 {) A) G; c/ v9 p! t8 d% F( K$ h' P3 V    distance<=distance_reg;
( C* U) k" w. a8 xend process;
; `% E% G) R" Z# E$ ?- ?end;1 N3 v4 ~, z4 h6 [6 I: Q
程序是這樣的,
回復

使用道具 舉報

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;
) \, e0 S  x9 buse ieee.std_logic_1164.all;( M2 l; i- @' x- q
use ieee.std_logic_unsigned.all;
2 [4 f5 A( V9 G% lentity decoder is8 m) @5 E9 H& Y# J9 z) S
port(clk20mhz:in std_logic;$ ?6 A+ X. s* {% r
      money_in:in integer range 0to 8000;
9 A) y* u1 ?: adistance_in:in integer range 0 to 8000;4 ?" e& y. h8 G" z' m$ v0 D' i/ {
scan:out std_logic_vector(7 downto 0);) x2 Z4 ^8 D6 K6 L6 V1 z
seg7:out std_logic_vector(6 downto 0);; n! s3 p+ a1 u; j4 ~3 u% T5 [
dp:out std_logic);, u$ U# O3 q4 Y7 a
end;2 ?1 F; l9 `& y' I* Z/ F
architecture one of decoder is. g0 m5 n* u. n- i- K6 S8 j
signal clk1khz:std_logic;
3 h6 [4 z) r$ M( c, Z. V5 H. u; csignal data:std_logic_vector(3 downto 0); 3 {0 @& {! L  B; o
signal m_one,m_ten,m_hun,m_tho:std_logic_vector(3 downto 0 );
4 T. o) S4 S' ~6 tsignal d_one,d_ten,d_hun,d_tho:std_logic_vector(3 downto 0);6 h3 ^( Z! R, y) ~+ X# _
begin4 L  V# K9 k7 J' a1 Q5 |
process(clk20mhz)% F- [7 H3 f/ Y" H* D+ }2 U% `1 b" p
variable count:integer range 0 to 9999;
: u, R/ G/ l/ D6 ybegin5 Z0 F8 f6 B3 z
if clk20mhz'event and clk20mhz='1'then6 K6 c: a* Y# r/ g
   if count=9999 then clk1khz<=not clk1khz;count:=0;
/ m9 b5 T. o8 m- f. zelse count:=count+1;! ]1 L. n$ s) X* u. Z  v& J: i
end if;+ u) `! I3 z7 V, C" t. f$ w9 K( Y
end if;
& w- i% M8 B$ }& p2 ~end process;, }( r% b9 d0 Z" f1 c( R
process(clk20mhz,money_in). H9 i3 \2 _" |+ C/ ?7 g$ a
     variable comb1:integer range 0 to 8000;
4 r/ C' w3 Z2 Q3 Y- Z variable comb1_a,comb1_b,comb1_c,comb1_d:std_logic_vector(3 downto 0);
% L, T! P: ?* y4 y7 O6 h. n5 {begin- S7 O! w2 z8 i. T/ N
if clk20mhz'event and clk20mhz='1'then
7 O' }7 Y  Z. X/ A' k* D      if comb1<money_in then4 E! E# P4 C/ G- s. R- `8 _
     if comb1_a=9 and comb1_b=9 and comb1_c=9 then: w! c$ Q$ t9 i: z
     comb1_a:="0000";% ?& U! C/ c) V5 [" j4 k) B
comb1_b:="0000";
9 F) |' r: t3 g- k/ ]- X  e! o& Ucomb1_c:="0000";
& u4 h3 D/ \1 l9 B  e, wcomb1_d:=comb1_d+1;
, b" y& k( K% A& A" b+ `  X& qcomb1:=comb1+1;# y8 q7 w7 F. B% e2 w4 j1 q
elsif comb1_a=9 and comb1_b=9 then- v- |" g! |- n# U
comb1_a:="0000";
9 x  I5 _& m+ U. S) V% @comb1_b:="0000";
4 ?# B# s( N; }/ R2 Qcomb1_c:=comb1_c+1;( ~9 A( Q& e' \$ @! D
comb1:=comb1+1;
& W0 _' O( j$ I( e- i; N, Relsif comb1_a=9 then
+ }2 ^! A: x( z$ K      comb1_a:="0000";( ^5 E' F* f" ~- z# q
comb1_b:=comb1_b+1;
: E, V( T* f5 u9 J2 _2 L1 icomb1:=comb1+1;: d0 d; s  X; `0 \
else
9 I4 b3 G/ e( j6 |$ h      comb1_a:=comb1_a+1;
# j$ f+ j+ B5 m% M) p2 g* }4 |comb1:=comb1+1;1 n$ \( n5 H  N% g. g2 E* v
  end if;
6 K3 }! T7 V6 H9 Q. b1 a  elsif comb1=money_in then
0 S1 X; _0 K. B2 q1 T) B     m_one<=comb1_a;' m; }  ^; o3 _5 B9 W1 C* r
m_ten<=comb1_b;
6 L& S6 g) R- c7 u1 Vm_hun<=comb1_c;% S# o: j# U: J: M
m_tho<=comb1_d;- p) F; Q- J6 F  z8 ?# j
elsif comb1>money_in then
6 Z& D1 }' z  ]3 }- l* Q( n" |           comb1_a:="0000";
. ?% u8 i# t' e2 R2 H; y     comb1_b:="0000";
2 ^+ G& ?! _3 lcomb1_c:="0000";% s( t* W, y0 t6 }* Z
     comb1_d:="0000";3 @: D8 P! H1 r, ]# |# `' ?' O+ F
comb1:=0;
: e" ~' [) `' R  Z! H# A* Rend if;
6 x( h; |) G+ R& Z' mend if;
2 s# ], ~0 G8 X1 P+ ]. _  tend process;9 k: y: Z9 L; D5 i, m! {
process(clk20mhz,distance_in)3 y( Z# }/ _9 D, s# w% h
      variable comb2:integer range 0 to 8000;2 i+ [- B6 F; J0 b4 s' m& b
variable comb2_a,comb2_b,comb2_c,comb2_d:std_logic_vector(3 downto 0);
2 w- ]. U* E" w0 L: Sbegin
8 g! K6 N0 f; _; X) u' xif clk20mhz'event and clk20mhz='1'then( e1 z3 }, K' J2 H# [) M
      if comb2<distance_in then' y% G7 U' R" J2 g; |7 I
            if comb2_a=9 and comb2_b=9 and comb2_c=9 then
, n0 X. o8 z4 k4 ?                 comb2_a:="0000";* Q/ j" A+ U9 q0 L: Y
          comb2_b:="0000";% ]. X. S1 R) M4 R0 x4 f
          comb2_c:="0000";* \4 d  `! D! m3 ^) u& [
    comb2_d:=comb2_d+1;: c9 O( o. e+ l- C
    comb2:=comb2+1;
3 I4 E6 v( G1 p8 R! t+ ^, }/ _elsif comb2_a=9 and comb2_b=9 then$ i0 F3 B/ @) G! B1 d7 l3 M
            comb2_a:="0000";
( w  _" ]; i! V5 _5 ^( E       comb2_b:="0000";4 W6 O* q$ _6 T
    comb2_c:=comb2_c+1;
  @) @4 ^, M2 T3 s! I4 ~    comb2:=comb2+1;5 b$ W1 k" [: o" e# R/ Y7 _4 b
elsif comb2_a=9 then
7 V6 ?& l" }8 e6 E$ R            comb2_a:="0000";
+ V2 v6 m7 l: ]      comb2_b:=comb2_b+1;6 K5 L. m) @6 e5 k0 `$ z5 r
      comb2:=comb2+1;
0 j+ [$ A* d# T- k- yelse
/ n  j- [) |, \, g3 E$ K) [               comb2_a:=comb2_a+1;
6 |0 j! m' V% ?% b7 @# b      comb2:=comb2+1;( H* T- V& g8 x$ T) Y
end if;
" S5 W, |0 ]/ _* _: b     elsif comb2=distance_in then- D  B  @  m; I2 u/ q
               d_one<=comb2_a;
/ E) M) n$ s* v4 t         d_ten<=comb2_b;
' P. t' A5 p- q- V1 F$ X; X' t( m0 @      d_hun<=comb2_c;+ d1 B# J0 E9 B3 N6 K/ r
      d_tho<=comb2_d;
& ]6 j/ Z) D! y" xelsif comb2>distance_in then
  ^  C0 e' |& e& L) g               comb2_a:="0000";
+ }6 Y  Y6 a3 ^4 i- g# H        comb2_b:="0000";6 H& r4 y/ k2 K  Q- c  A( \
        comb2_c:="0000";7 {) `  a/ ~$ P* f
        comb2_d:="0000";
7 |  ^4 t. l( Q" K* T        comb2:=0;
- P# D0 u% Y% Q* ]+ d3 b+ D   end if;+ O/ D2 M" a- o
end if;& ^! R* w' h3 ^8 V9 c
end process;
" m, q; G- L+ z& ?) Cprocess(clk1khz,m_one,m_ten,m_hun,m_tho,d_one,d_ten,d_hun,d_tho)% `! n- y4 w) e8 J0 l
variable cnt:std_logic_vector(2downto 0);
: p  D0 I$ T1 @, gbegin
7 g$ U; w% W2 z1 D: Fif clk1khz'event and clk1khz='1'then. Y: P* c. m+ i1 o# ]
      cnt:=cnt+1;* S- m4 _, f. r8 U) I: F
end if;: {1 [" L, R0 b. s; r
case cnt is  E5 A1 T+ @0 [% |8 h# j% @# o- }1 F: K
      when"000"=>data<=m_one;dp<='0';scan<="00000001";
0 b+ p8 U# p0 p: a( X6 O% @1 c# ]* @      when"001"=>data<=m_ten;dp<='0';scan<="00000010";6 l, K6 Q; ~* c( |( x* G( y
      when"010"=>data<=m_hun;dp<='1';scan<="00000100";
% a) B, P+ [4 o/ ?5 |( c0 }      when"011"=>data<=m_tho;dp<='0';scan<="00001000";; \- w( s0 U, f" v7 T# Y: a# W
  when"100"=>data<=m_one;dp<='0';scan<="00010000";& n# D+ G# }3 K' @3 u. R2 f- O
      when"101"=>data<=m_ten;dp<='0';scan<="00100000";3 i- H" ~; O5 Z% {$ O+ P% k
      when"110"=>data<=m_hun;dp<='1';scan<="01000000";
5 l0 c8 V$ a) k0 X, f/ m2 v8 I' j      when"111"=>data<=m_tho;dp<='0';scan<="10000000";
! r2 i% |& R! ]2 m% f' Q1 C. iend case;; Q) ]: H2 p8 |' g
end process;0 n7 ]8 V  x. J7 b
process(data)+ @& y: h1 J5 z& U- E  P
begin# N' g( `; R- P0 P$ ]" U5 X
case data is
5 X* W0 G! \3 X* Y. N- L3 ~8 c     when"0000"=>seg7<="1111110";
1 x' [# g/ ~/ s$ I* q when"0001"=>seg7<="0110000";* N/ J- y; X1 \
when"0010"=>seg7<="1101101";
. ?- h/ e$ M: B# J+ t, m when"0011"=>seg7<="1111001";$ c) G5 N7 Y% `$ x
when"0100"=>seg7<="0110011";
, b6 G; O/ e) Q6 m/ ]0 ?6 A when"0101"=>seg7<="1011011";
6 J. e5 l7 y. V4 a when"0110"=>seg7<="1011111";
4 {3 P; z$ l) W when"0111"=>seg7<="1110000";
' f5 j: B4 U% v, S1 ? when"1000"=>seg7<="1111111";! g* R& ]6 ?# ^) Q0 t  I
when"1001"=>seg7<="1111011";: h8 S1 q; |5 A* ~! G9 I/ F
when others=>seg7<="0000000";
! {7 _% g+ x, V! |end case;+ p+ v/ C; g; R* g  L4 G
end process;' s% O3 ~2 s2 U  M& ^  R  G- f
end;! h6 w( Q6 X9 w  E

+ F8 Z/ J6 W, _% h; p* Q* O- V4 ?! G
- v" ]/ C, j  t& q6 N1 b' Y

7 F+ N' C& ]0 n, G4 C8 j. j5 l第二個程序是這樣的
回復 支持 反對

使用道具 舉報

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è)設計現(xiàn)在就差這一步了下圖是連接完成的仿真圖
3 V! J' W: N3 O6 [

本帖子中包含更多資源

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

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ī)則


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