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

PCB聯(lián)盟網

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

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

[復制鏈接]

585

主題

910

帖子

4977

積分

四級會員

Rank: 4

積分
4977
跳轉到指定樓層
樓主
發(fā)表于 2022-7-18 15:06:53 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
library ieee;1 b5 ]. P% v! D0 Y" \
use ieee.std_logic_1164.all;+ e, V  h5 y- V& y7 w2 x" z% |
use ieee.std_logic_unsigned.all;
+ X5 c7 v) l) T- J) G1 h  gentity taxi is
, J8 }# o9 W. b- R; Fport(clk:in std_logic;
$ V% L7 ]7 n( V3 f  q' N       start:in std_logic;# u: j! ^/ `: v3 {% n
       stop:in std_logic;
( F5 X  ]. h8 \4 G' h! g       pause:in std_logic;
9 E0 l) ~: u2 m- t& Z+ X       speedup:in std_logic_vector(1 downto 0);
* E* K( b5 k' l, x8 A       money:out integer range 0 to 8000;/ y, Y7 r# h- x4 i8 K9 M
       distance:out integer range 0 to 8000);
$ q; F2 Z: Y/ h4 A% X% R1 nend;
7 K( i* u- W) `architecture one of taxi is1 S9 f* _/ q7 L
begin
# y2 J% Z- n* b  s- Cprocess(clk,start,stop,pause,speedup)
; g* K9 ~% r; ?3 _4 S1 I0 u# `     variable money_reg,distance_reg:integer range 0 to 8000;+ f' y; c7 r5 {4 u% |) h
     variable num:integer range 0 to 9;, H" w$ Q* S( o: H/ q+ w
     variable dis:integer range 0 to 100;
- N) ^- c8 C2 v! v; d4 j     variable d:std_logic;- V- l7 e$ \( \: C9 `
begin: I( V  T3 m4 i" x0 u1 \, F
if stop='1'then
8 Z( V( R2 k. s; ]$ A5 L3 d$ D. `      money_reg:=0;3 j- k5 g1 u0 i; L5 w( D9 H, W
      distance_reg:=0;. W: u; l- G) F4 j( Z) K0 p2 ?
      dis:=0;  Z, n2 V; _( U$ a. k) U  p6 {$ t# Q' I
      num:=0;' w2 h9 X& \( c7 N& Z/ a) l$ i# @- g
elsif start='1'then' a* T' t2 M) F2 J) `2 @+ B
      money_reg:=600;
$ I. @" Z" D. D, ]      distance_reg:=0;
3 `7 o) ~& a! r* o6 ^$ d6 w& o3 c      dis:=0;! C$ N0 a$ J, J2 e# `
      num:=0;
8 E8 M! s6 i( E8 X, T9 O( G- melsif clk'event and clk='1'then
0 U. y- c- Q' }7 [! ^1 |% b       if start='0'and speedup="00"and pause='0'  and stop='0'then
0 {* Y" B8 O. ]1 z8 n            if num=9 then& r2 K7 S$ d. h3 f! K1 e
                 num:=0;- l1 F; W3 C4 Y3 B
                 distance_reg:=distance_reg+1;
8 C$ l, }' F/ C3 i1 p. K                 dis:=dis+1;
6 s) D% t0 C# u! D0 C: H              else num:=num+1;4 `; j7 I5 S) W; \7 q( Y! H
              end if;: L; T! o1 ?3 i& d* J" w* ~; [$ h
elsif start='0'and speedup="01"and pause='0'and stop='0'then
" `7 `* }- [# b3 d) J3 V9 J7 L! s   if num=9 then
  L  U: c  z1 b: Z8 h9 d        num:=0;
) a* d) J+ L5 K$ `7 k  D0 V5 o        distance_reg:=distance_reg+2;0 b) M6 Q$ c# G7 L! I
        dis:=dis+2;
6 d# H/ X) a) {4 f/ c9 r* _2 A: g  j1 Y3 I' k      else num:=num+1;
& l4 u* y1 `7 b( v9 a0 I' l; y      end if;
3 A% L/ `# y3 u- V; ]  Selsif start='0'and speedup="10"and pause='0'and stop='0'then
( t0 N( ~; _1 d1 r* s4 u4 z    if num=9 then1 o% l/ o. B! x, Y  J  z
        num:=0;
7 Q' |) r' I4 }. c( N6 ]6 X         distance_reg:=distance_reg+5;/ _, ^* ?8 d$ b5 ?& H5 E
         dis:=dis+5;, ?5 J7 l: f* [
    else num:=num+1;* }" z8 g6 H  L3 I
    end if;" _3 n! W6 J7 m2 `2 z
elsif start='0'and speedup="11"and pause='0'and stop='0'then- |" V" L1 F* P  W6 r$ J
           distance_reg:=distance_reg+1;7 z7 F8 C  w3 l! k! x
          dis:=dis+1;
; t5 O& _7 z# `* gend if;- S" u2 L% Z) O& T2 B
if dis>=100then
1 n9 M( j2 m0 F- |& |8 [' \         d:='1';
: I! \& k5 s, a% H" h( u         dis:=0;
. r) Y3 v' E" t4 h2 a$ K      else d:='0';5 ?  b3 Y' v3 f7 H/ ~2 o. }- U# q
end if;
! w# N0 i) S% ^" fif distance_reg>=300 then
  i' H; @# k* b       if money_reg<2000and d='1'then
. P; T* T# |$ N                money_reg:=money_reg+120;- @3 y+ L  f0 u. c
       elsif money_reg>=2000 and d='1'then' N1 h9 u. N" \8 o$ m6 g
             money_reg:=money_reg+180;
- V! F. K- I% ]       end if;$ G( I4 S5 _* c: R: N
    end if;/ R9 {, p9 r+ B# a
end if;
( T5 j& U  o  T    money<=money_reg;- A+ P8 j# c4 I% n7 `* b) ?6 o
    distance<=distance_reg;
# @* m) l) r1 N5 m+ W7 L7 rend process;- j/ o5 P; i! X/ i# N1 j2 H
end;$ y5 J/ M0 ?; R) k3 v
程序是這樣的,
回復

使用道具 舉報

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;
) H/ {, M8 B1 iuse ieee.std_logic_1164.all;$ {" Y. C* p% {  b; Y% p
use ieee.std_logic_unsigned.all;
, z  s1 p, p" ]8 qentity decoder is3 E" K. v0 S. p! }
port(clk20mhz:in std_logic;
* ^+ z! ^  M7 w0 r: D$ Q  l& n      money_in:in integer range 0to 8000;, L  D. e) t# i3 j$ a/ \8 l8 h
distance_in:in integer range 0 to 8000;3 A; f! t( c/ w' x
scan:out std_logic_vector(7 downto 0);
. U; w5 w# O& M0 b3 c7 }seg7:out std_logic_vector(6 downto 0);* n% ~* z, `. f
dp:out std_logic);
3 n$ L+ t, _9 G7 Tend;
( j/ o5 \0 G8 G0 farchitecture one of decoder is
3 f% Y3 ?  c3 Z" D signal clk1khz:std_logic;
7 b' D" }' t# @! B7 ]( csignal data:std_logic_vector(3 downto 0);
% u1 n4 y* D9 Y" J4 d( Bsignal m_one,m_ten,m_hun,m_tho:std_logic_vector(3 downto 0 );7 H/ {2 ]+ L3 H: C2 {4 J7 r2 i
signal d_one,d_ten,d_hun,d_tho:std_logic_vector(3 downto 0);; T+ e: C3 |. e
begin
3 s# P0 v# m' O2 E6 Q  p: v) \/ l/ jprocess(clk20mhz)
, o* |- t. w6 P; \: Pvariable count:integer range 0 to 9999;5 [/ q2 ~0 P+ ]: H
begin
+ o6 a3 F2 g' d7 Rif clk20mhz'event and clk20mhz='1'then
( v( N: Q& E4 [7 d. G   if count=9999 then clk1khz<=not clk1khz;count:=0;
8 L; t; B- Q' S: u% ]+ qelse count:=count+1;0 V+ |9 L6 z' w  P
end if;% t( {3 A! Y$ z# j5 ?" h
end if;
% Y0 L3 k6 H$ iend process;
1 [: d, _; S7 d) t9 R* a2 L  {% tprocess(clk20mhz,money_in)
* w0 F0 j. x: T# Z8 n* v; I     variable comb1:integer range 0 to 8000;* q9 U0 ^5 z/ K
variable comb1_a,comb1_b,comb1_c,comb1_d:std_logic_vector(3 downto 0);
. R7 K9 m9 |! fbegin
  p  |2 R" F6 O2 A# Jif clk20mhz'event and clk20mhz='1'then, Z. N( z. _- y# `  V4 I7 m
      if comb1<money_in then
. G) {: U8 O- Q6 J. G, C$ B     if comb1_a=9 and comb1_b=9 and comb1_c=9 then  g' ^3 c" K9 j# _
     comb1_a:="0000";
; B6 U; H, F# K7 l" c# Tcomb1_b:="0000";
& h) u1 S7 _: H2 Ncomb1_c:="0000";
. l6 y6 `# p# z; ucomb1_d:=comb1_d+1;
& ~! E. _! O: Y6 Gcomb1:=comb1+1;: \8 v$ Y* @# j" v) a2 p# {4 Z
elsif comb1_a=9 and comb1_b=9 then8 A7 m4 ?8 J/ u# ]. ^- ]9 d
comb1_a:="0000";
# q: S" S: a5 w$ C% d' fcomb1_b:="0000";" i1 {$ Y4 \0 f! D: d
comb1_c:=comb1_c+1;' q" h( }+ m  `
comb1:=comb1+1;* `! |& P( e: Z6 i) A0 e' S5 D
elsif comb1_a=9 then; {  T/ H9 B3 v( I6 R
      comb1_a:="0000";
6 x. b: h4 K- \$ V5 M6 k+ Acomb1_b:=comb1_b+1;) s2 X- N0 |) z2 d
comb1:=comb1+1;
9 O. ]3 Z9 y8 u: f4 g' ?: }# ^ else
5 {( k) d/ p/ v2 [0 X6 O      comb1_a:=comb1_a+1;
7 q3 k0 H+ o+ E/ }2 ]. _comb1:=comb1+1;6 J: z2 n  U8 H, k( g. }
  end if;
/ V* T& t  m$ }  A+ r0 U  elsif comb1=money_in then
+ @- S' N. C5 c0 G( c     m_one<=comb1_a;
  H: I0 Y9 c' X8 P' j: tm_ten<=comb1_b;+ Q* f  f& Q  }
m_hun<=comb1_c;# C' I, o% O* D4 a4 d
m_tho<=comb1_d;/ S9 X- J. T+ C8 Y6 _/ h. g& E% x
elsif comb1>money_in then
: W/ Q- d$ n* k4 Y# O( x, @           comb1_a:="0000";
8 t/ f  E0 U1 ?  Q5 J     comb1_b:="0000";
  x9 a& o  j/ q4 m  Qcomb1_c:="0000";
8 W0 O+ ~/ b, u/ A, ]5 K# H     comb1_d:="0000";
4 _3 e* p+ c( C) o, q) Ucomb1:=0;3 c+ |' A7 e& m% q
end if;
" k* \5 x- f, A3 y+ z# k9 qend if;
  v5 Q1 J/ a/ A2 z, k' pend process;
9 N1 o+ Y6 S# X$ yprocess(clk20mhz,distance_in)% V7 ?6 F9 T- m3 F5 T5 O$ {9 ?
      variable comb2:integer range 0 to 8000;
; q7 Y9 u8 d3 j6 H' lvariable comb2_a,comb2_b,comb2_c,comb2_d:std_logic_vector(3 downto 0);9 ]2 R) r0 ]9 H7 M9 N6 a
begin6 t: K3 a  t) p  I% n* B0 ^
if clk20mhz'event and clk20mhz='1'then
5 M; a; c4 V; Y( @      if comb2<distance_in then0 b1 \7 ?0 }& `( @; @5 C& h, P
            if comb2_a=9 and comb2_b=9 and comb2_c=9 then
  ~, F) ?+ ?( L+ ?& j& B                 comb2_a:="0000";
# H# g  ?1 d+ }# p5 c7 w# f          comb2_b:="0000";
0 U8 R: z% V2 G9 O          comb2_c:="0000";
" M4 ?) A( V- f- N4 t: W    comb2_d:=comb2_d+1;# }2 Z; D& a: {  o- z
    comb2:=comb2+1;
3 [5 i3 L# U" Jelsif comb2_a=9 and comb2_b=9 then) `" C- g1 s) t0 O+ v+ j
            comb2_a:="0000";
# y: z8 v, z/ ?. {, c. B9 l       comb2_b:="0000";! M7 Q1 @5 ^! s# F+ i0 r
    comb2_c:=comb2_c+1;: R, ^! t* x7 Z2 s# p. q
    comb2:=comb2+1;
% ^2 b0 g4 s( h! x2 W9 oelsif comb2_a=9 then0 {/ K) T. d( G3 M3 }: \8 \
            comb2_a:="0000";3 l! P) O  v. A! x; o
      comb2_b:=comb2_b+1;! I' p- Q! d' ^5 m- d( C
      comb2:=comb2+1;
0 Y, K/ E; W6 t+ ^5 O! x% xelse
8 A2 A2 \4 b$ C+ P* \9 L( X" J               comb2_a:=comb2_a+1;4 i4 ~" l( T6 `4 V7 }2 F
      comb2:=comb2+1;( Q8 L6 N! O: T5 |0 m- ]
end if;
/ a0 B+ N; q# z& u' g, e0 ]     elsif comb2=distance_in then
/ Y1 f* }( m% O; u               d_one<=comb2_a;
; D5 u7 S' M4 [0 ~, W0 j; s         d_ten<=comb2_b;
5 X1 n# p1 n" ]# a' e      d_hun<=comb2_c;" F9 D5 X+ I; b
      d_tho<=comb2_d;
6 y( y8 g( f5 l. r0 ^2 v! h# V( f; Helsif comb2>distance_in then
+ Y: s* [" D3 ~2 H$ i) E               comb2_a:="0000";$ |+ y* u- v$ o; t9 k
        comb2_b:="0000";) w( b) Y/ W( d' X
        comb2_c:="0000";
: i5 u) Q# y7 Z) P        comb2_d:="0000";
, A0 j% A! ?2 h        comb2:=0;1 ?- @3 q! n' q1 P5 M
   end if;
$ Y% B$ ?4 H) x& `1 V' Cend if;
4 [: |5 s5 ~+ P( I" wend process;
4 Q5 O) f/ f1 y3 I1 y% i2 |  Q. f/ Mprocess(clk1khz,m_one,m_ten,m_hun,m_tho,d_one,d_ten,d_hun,d_tho): |7 a" C. j, @& C
variable cnt:std_logic_vector(2downto 0);
) g4 q! z' L. G/ F- A( abegin% W0 q0 ]0 @9 B
if clk1khz'event and clk1khz='1'then+ }' e: k7 M! [, N) {9 r
      cnt:=cnt+1;
  ^' S8 y7 }& e  w. `% C. }end if;& h) \" d+ O9 @3 ?% w: v
case cnt is
9 b; h. b2 z  P      when"000"=>data<=m_one;dp<='0';scan<="00000001";2 j! D% [2 H, h
      when"001"=>data<=m_ten;dp<='0';scan<="00000010";
  ~+ V  @" c. K      when"010"=>data<=m_hun;dp<='1';scan<="00000100";9 |8 s# h/ |- N! c
      when"011"=>data<=m_tho;dp<='0';scan<="00001000";0 F  N9 a; G* I+ W8 ?7 c$ T/ V0 d3 x; u
  when"100"=>data<=m_one;dp<='0';scan<="00010000";1 t) f: o' X) d6 v0 u
      when"101"=>data<=m_ten;dp<='0';scan<="00100000";4 d0 ^5 i* a$ q: z& @. A
      when"110"=>data<=m_hun;dp<='1';scan<="01000000";, k( Q" o' I" ?3 [1 U6 t9 T5 I0 {
      when"111"=>data<=m_tho;dp<='0';scan<="10000000";
. |8 O! P! i+ pend case;
$ B1 K8 \* P  e0 [end process;/ t- d, f8 h" h& m2 A% E/ B
process(data)
/ N( O# _- f4 ^/ n" ~( Mbegin
: `) X8 u4 p2 H# U+ n+ n% B: O7 Dcase data is# _  D; p3 T% Y$ o. q
     when"0000"=>seg7<="1111110";/ r4 y. _- u' k5 g8 Q  L
when"0001"=>seg7<="0110000";. T4 j* g4 p( K1 {4 y1 a: _
when"0010"=>seg7<="1101101";
8 S! Q- p6 |4 G4 L% ]7 O when"0011"=>seg7<="1111001";
: m# u% _1 b0 W! Z when"0100"=>seg7<="0110011";
6 a; ^) U$ }) d4 b; q0 }" I  j when"0101"=>seg7<="1011011";  x" l! [& A8 f7 f
when"0110"=>seg7<="1011111";
1 Q: C: t, v. u0 S/ w% z% G" K when"0111"=>seg7<="1110000";  W% P' g  Y( P8 ]8 t
when"1000"=>seg7<="1111111";
5 d; d* ~: P) h% m0 W when"1001"=>seg7<="1111011";
+ w0 W- d) S5 `" j1 S& K/ i when others=>seg7<="0000000";
1 j$ A2 f! X7 X. g* |end case;
; H! i, q$ t9 A6 w8 _. ~end process;
4 a: w0 l) t: m; }2 nend;
. J* j2 E- v1 r; w4 k5 x7 z0 P. M, g: t/ b' E

! g9 J7 l- e  }) G% n4 i7 n+ _: H- [3 Q9 q8 @3 {1 M% h( @2 Y) N' ~
, g* g2 s' {/ ]/ Z
第二個程序是這樣的
回復 支持 反對

使用道具 舉報

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è)設計現在就差這一步了下圖是連接完成的仿真圖& e; A% u; o. _. j% c# X% c# J; e7 @

本帖子中包含更多資源

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

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 返回頂部 返回列表