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

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

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

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

[復(fù)制鏈接]

585

主題

910

帖子

4977

積分

四級會員

Rank: 4

積分
4977
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2022-7-18 15:06:53 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
library ieee;
- \9 R1 ]* C6 x6 Zuse ieee.std_logic_1164.all;7 t% S+ I$ i& V; z& u. Y
use ieee.std_logic_unsigned.all;
* Z! p8 l: j, P. z$ uentity taxi is
; }  l3 e$ b% ~7 Pport(clk:in std_logic;
: S$ T9 e% ]: z" |8 @/ o# K% b       start:in std_logic;
8 s6 [# p% w' U9 T3 _6 V% t( B       stop:in std_logic;
9 E$ @( }8 U7 C3 l       pause:in std_logic;6 t% w; n! P) Q8 K5 y; P
       speedup:in std_logic_vector(1 downto 0);
9 U/ ], ^) O' k       money:out integer range 0 to 8000;9 G# V. l) V7 ?) k2 K
       distance:out integer range 0 to 8000);
: R/ w7 s2 T0 f4 h1 G3 H! _9 pend;; R# @9 U7 S* y6 R1 u  g. J3 z* K; X) ^
architecture one of taxi is
' q% ^+ P: e) Y: D7 sbegin' ^  j1 }0 Q5 m3 s4 I. J* L8 c5 V5 V
process(clk,start,stop,pause,speedup)# R7 \$ R* o6 K
     variable money_reg,distance_reg:integer range 0 to 8000;
' e% R: p2 [7 S- `2 N# U- N     variable num:integer range 0 to 9;  y0 `2 \2 ?" b1 w: c
     variable dis:integer range 0 to 100;  J6 ?) T$ p1 p+ E. p
     variable d:std_logic;
! c+ `! J4 i: w5 T/ G4 _begin8 e, ^5 ]/ H7 `) N' T; }, O
if stop='1'then6 h5 [: {, N9 C3 z2 Z/ G$ X" Q
      money_reg:=0;6 l8 e* o+ L% \( |/ _
      distance_reg:=0;
9 ^6 c) a* Z2 o      dis:=0;
$ H8 S( a: k% k% _) g4 k      num:=0;
( i8 \1 D; A4 G+ j+ ?. melsif start='1'then" g/ }" j7 t5 G" b/ M- K6 ]6 F
      money_reg:=600;# `, {, \% x) G  ]9 T4 }: b: |0 l
      distance_reg:=0;' c1 `2 D5 j" H9 ~3 D, C6 z
      dis:=0;! I4 ^9 ]' u6 G* a3 Z$ A& y- v
      num:=0;
6 l5 \; r* ]7 w; q# Q* Zelsif clk'event and clk='1'then
8 B+ S5 C5 L" ]  {( j% w" m; j       if start='0'and speedup="00"and pause='0'  and stop='0'then
* n7 |% l% C" q" a$ T            if num=9 then( @: {. U: w8 W& Y
                 num:=0;
: H7 ?% B/ m: r/ t" T( c! m                 distance_reg:=distance_reg+1;- M; M% T' z. d+ O3 V2 G! s! c, V
                 dis:=dis+1;1 b/ u" M2 f! U2 T9 T  o: ~
              else num:=num+1;4 }7 p' v* o9 Q
              end if;
0 o1 n5 L, z' R# B4 ^elsif start='0'and speedup="01"and pause='0'and stop='0'then1 Z7 X5 ^! e# R3 \4 c# X7 L/ A, F: S
   if num=9 then
! p2 y" e* N4 B3 M. n/ h6 M        num:=0;
# c2 b2 v7 `" }% d. E3 l+ v7 R        distance_reg:=distance_reg+2;
: b+ B+ p; K( Y/ s1 f$ h        dis:=dis+2;
% Z8 E% c; U3 |: H" \9 f      else num:=num+1;; D! t# |. R  c  W5 D, \
      end if;1 T- ~% c( j6 c) \
elsif start='0'and speedup="10"and pause='0'and stop='0'then
8 }3 V! k( {& G# e7 U    if num=9 then; V* i) d! f; S; `
        num:=0;$ H9 z3 |9 A$ F# }  g0 {9 V" L
         distance_reg:=distance_reg+5;- ^4 x) `3 y( A) i# U
         dis:=dis+5;
+ H* u* d* @0 S    else num:=num+1;) D4 I$ @5 m( B/ p. u# }' A5 u' y
    end if;; o9 v  ~2 Y1 ^; D5 y! z' f+ k
elsif start='0'and speedup="11"and pause='0'and stop='0'then
3 \! N3 `  \4 j# N' w           distance_reg:=distance_reg+1;
& M0 H! ~3 W9 d; q$ @/ s( I          dis:=dis+1;
5 Z! J' _/ ?! k+ C" H. g) Cend if;
. j& V( |* h9 y0 |: Eif dis>=100then; m0 i# `) L, s7 P
         d:='1';
' ?1 n8 _/ D+ @( }' Y7 `+ u         dis:=0;
) a# G- n9 Y3 I/ [5 {' r      else d:='0';
8 @: a5 {3 E* Tend if;
7 G% S) T/ v: qif distance_reg>=300 then
( D+ U% M) G6 z4 t2 h8 z  z       if money_reg<2000and d='1'then
$ N/ x$ G5 l0 u, v                money_reg:=money_reg+120;5 [7 p. W1 n& M4 Q) B" L
       elsif money_reg>=2000 and d='1'then& p: R( Y, M1 ]8 S9 i" l: @
             money_reg:=money_reg+180;
* |! q9 W$ A6 b. i+ S       end if;% Y% F7 q3 a( x+ I: x
    end if;
; z7 i6 g4 b+ z1 l3 tend if;
# r+ {& Z, `1 L* B8 {/ z! k    money<=money_reg;
5 |/ T5 T; Q* o    distance<=distance_reg;
" f4 \" H* \+ |- T' {0 Pend process;2 B# y" C* K+ h
end;
$ h( G3 N  p+ J- [- G程序是這樣的,
回復(fù)

使用道具 舉報

589

主題

924

帖子

4975

積分

四級會員

Rank: 4

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

本帖子中包含更多資源

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

x
回復(fù) 支持 反對

使用道具 舉報

578

主題

858

帖子

4821

積分

四級會員

Rank: 4

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

使用道具 舉報

579

主題

911

帖子

5007

積分

四級會員

Rank: 4

積分
5007
地板
發(fā)表于 2022-7-18 15:08:19 | 只看該作者
library ieee;
3 O. i4 Z/ K/ V1 R# F% p" guse ieee.std_logic_1164.all;8 z5 \9 q; v" w# `' j
use ieee.std_logic_unsigned.all;0 d( ?8 K% w, r
entity decoder is  P7 [7 t5 H0 z- Q
port(clk20mhz:in std_logic;2 M; G: L1 S$ M) R! I
      money_in:in integer range 0to 8000;/ x# E: r8 {% m6 g. W& o
distance_in:in integer range 0 to 8000;
* S9 j* O5 q4 Y& J9 D1 ~; Cscan:out std_logic_vector(7 downto 0);( u& I3 \! R. Q
seg7:out std_logic_vector(6 downto 0);4 v# j6 O0 ^' N* ?
dp:out std_logic);
- B8 i& p1 {- Q; n8 F: Rend;
6 g& t: W1 v6 N* Zarchitecture one of decoder is
. p" T5 r. b5 u# Z1 U3 n4 i' h- N signal clk1khz:std_logic;
8 L% J/ j' n5 s! _signal data:std_logic_vector(3 downto 0);
% l' @) t- g1 t& H/ A" e* Y$ lsignal m_one,m_ten,m_hun,m_tho:std_logic_vector(3 downto 0 );
: M' D6 Q$ X. Hsignal d_one,d_ten,d_hun,d_tho:std_logic_vector(3 downto 0);8 V. f) ^6 H5 Q2 s6 h5 X
begin- ~) y- @; W$ u. g, L
process(clk20mhz)6 `6 |" d! V6 T# n, \. x8 f2 b
variable count:integer range 0 to 9999;
( O' D6 c8 w- Q4 G4 C# j- Abegin
4 |' F; o8 g2 ]7 N, X2 n+ kif clk20mhz'event and clk20mhz='1'then
% h: ^6 ~: U/ D; D% |- P- g   if count=9999 then clk1khz<=not clk1khz;count:=0;
# Q* t! c; U# Delse count:=count+1;
- N. T8 u, w" e: `5 eend if;. M3 z2 J$ a+ e3 h
end if;0 z/ ^6 `* o( M; v& J( `
end process;+ P2 A- o/ T0 k7 r" o6 b+ ~; q
process(clk20mhz,money_in)
7 d3 E0 \/ k1 P9 i3 V  `% J  W     variable comb1:integer range 0 to 8000;3 P: z& S, _% {' s1 e7 y( J
variable comb1_a,comb1_b,comb1_c,comb1_d:std_logic_vector(3 downto 0);9 o6 {5 |* I9 k' L' [6 ^/ O
begin
6 S. x7 V8 R! m- r* f1 d7 ]' V+ ^if clk20mhz'event and clk20mhz='1'then% k6 O" ]& r# H+ R
      if comb1<money_in then
# `  Q- f, N6 f. q7 F7 B; o  z     if comb1_a=9 and comb1_b=9 and comb1_c=9 then
* ?0 G& p4 G# z1 p     comb1_a:="0000";3 d7 L0 x. E, @& m9 h
comb1_b:="0000";
( k; N! _+ f+ K+ h" x7 A: dcomb1_c:="0000";
) k' Q, M* L2 o% L7 Ucomb1_d:=comb1_d+1;
) D4 K7 b7 i% Y1 Qcomb1:=comb1+1;
) D) N$ b' q9 S8 p1 c4 \! X* gelsif comb1_a=9 and comb1_b=9 then
1 L; f3 g  _. Ccomb1_a:="0000";# c2 N; k* K/ c4 P- N. _
comb1_b:="0000";
4 y' _2 T9 a- c" v6 h' u3 F5 w. N; {3 Rcomb1_c:=comb1_c+1;
1 e$ }  S3 K. G9 h, R. x) M; Ncomb1:=comb1+1;
* R$ G0 Z  @$ S+ c7 P- U! a& ?elsif comb1_a=9 then
1 }9 x- C7 |$ D8 _" q. N( `      comb1_a:="0000";
( d/ ]. p7 ]9 W4 O& [' ?comb1_b:=comb1_b+1;8 r$ v- D% w3 _( m: c
comb1:=comb1+1;4 r7 u" g. W& K! e* m3 J5 ~  u7 u% @
else
+ n$ H$ i( R+ Q' \5 \      comb1_a:=comb1_a+1;+ Q* Z& }# q: k
comb1:=comb1+1;
. R) g& F. v/ T* U  end if;
: n  P  {5 C% E  elsif comb1=money_in then' [+ j% n% t5 L; W1 E+ k3 ~
     m_one<=comb1_a;
( [" T" S6 B! o% k0 `& d) km_ten<=comb1_b;1 h, J3 V3 B9 ]& R5 L3 S2 Y
m_hun<=comb1_c;. H+ O7 i% r, I% ?: P
m_tho<=comb1_d;& A1 i; D: `* r0 C8 W8 a: J6 H. [
elsif comb1>money_in then
9 A5 Q8 k0 F! F1 m, w           comb1_a:="0000";
% _; U' l2 Z' c4 ]     comb1_b:="0000";3 O/ c7 m, m% b8 r
comb1_c:="0000";
8 i$ |' K. P" S     comb1_d:="0000";& {* \: [9 T* J1 X
comb1:=0;
! ?& k% g2 W. F$ m, K! {end if;
2 O. J4 K  T- s4 o" tend if;- S, e0 `) g5 `  y
end process;
4 M. _: i( \$ nprocess(clk20mhz,distance_in)) R; r$ ^" z# i0 O
      variable comb2:integer range 0 to 8000;
( U3 L* b( {/ s3 w3 Kvariable comb2_a,comb2_b,comb2_c,comb2_d:std_logic_vector(3 downto 0);% C& h$ c" Y+ W6 b( C
begin9 v. ?, \. e3 d. X
if clk20mhz'event and clk20mhz='1'then
' G' T4 K3 T& J* _, I1 m9 d" ]      if comb2<distance_in then
6 v1 N7 A4 D7 Z            if comb2_a=9 and comb2_b=9 and comb2_c=9 then
; C" _2 B  @6 T- I( `                 comb2_a:="0000";1 r0 v, c6 A$ ~
          comb2_b:="0000";
! k2 Y6 R& Z( e; m7 j+ I          comb2_c:="0000";. }9 s3 M8 B# C1 h9 H
    comb2_d:=comb2_d+1;
6 P3 p6 s9 f4 [    comb2:=comb2+1;
, H4 `) b; A1 j+ gelsif comb2_a=9 and comb2_b=9 then
/ b3 K' L8 P3 C* \            comb2_a:="0000";9 t3 O9 p. q' v: j  R, E
       comb2_b:="0000";
! q! [4 ^; V7 t4 e    comb2_c:=comb2_c+1;6 P$ D8 L2 p4 Z7 M1 m* j( |
    comb2:=comb2+1;
  r$ i* h6 O* D" ^  @elsif comb2_a=9 then
7 o* b& I( E  M            comb2_a:="0000";3 i7 |/ z# o, v/ P
      comb2_b:=comb2_b+1;
7 D6 E3 j& j3 B8 I0 ~% }5 v$ ^9 i2 F      comb2:=comb2+1;
+ r* R1 T0 s- j) X& ?$ t. \else
% P0 m  q9 Q, ?               comb2_a:=comb2_a+1;
8 a; N8 i# t) v; L0 I      comb2:=comb2+1;$ ?' @1 f8 K. Y5 S# m) ?
end if;
/ e$ p7 g- {: O, H- G1 v2 r     elsif comb2=distance_in then
4 B' D* L, S  l) m# ?               d_one<=comb2_a;8 ^! r, N# r, ?5 c1 M' H
         d_ten<=comb2_b;
2 F& E/ f; q, h* ^3 m1 U2 h, a" F2 W      d_hun<=comb2_c;  i/ F9 p' ]5 p; a+ k- O! Q5 o) J
      d_tho<=comb2_d;
, e& g, x) `& J0 z+ z0 ~elsif comb2>distance_in then
8 R, w' n4 i  b: k+ P: Q2 L6 |1 C               comb2_a:="0000";
% s; ~) d2 A' s7 t* t/ R& L* M        comb2_b:="0000";
& O% B: v. v7 ?        comb2_c:="0000";- y7 o* d" u# J$ W& M' P2 H
        comb2_d:="0000";
/ P! I* e; O: P9 j* T/ A/ Y        comb2:=0;
2 j6 R2 s  X. q0 ^   end if;
( g  O% K- ?/ U6 vend if;5 q/ ]7 F; [( Q2 C$ U5 a
end process;6 A; x( l! j) u/ B" g
process(clk1khz,m_one,m_ten,m_hun,m_tho,d_one,d_ten,d_hun,d_tho)1 f% @* m" y5 \( S* i* Z
variable cnt:std_logic_vector(2downto 0);
% }' y3 C$ L* t- S9 I. t/ nbegin+ {7 {! j% x2 b" n( i5 l
if clk1khz'event and clk1khz='1'then5 x( J# p+ p. l4 D+ h+ q+ d+ l
      cnt:=cnt+1;- I& A! D8 H" `5 Z
end if;( ~* W. l2 q- D2 Y/ g0 ?, r* g7 t! M" |
case cnt is: R- H1 _# ~" ]$ Q0 |8 F4 Q0 e1 }
      when"000"=>data<=m_one;dp<='0';scan<="00000001";
1 z6 l2 \  z7 ^3 V" u8 {      when"001"=>data<=m_ten;dp<='0';scan<="00000010";3 e& g2 K# Y  o& \8 i2 A
      when"010"=>data<=m_hun;dp<='1';scan<="00000100";
: j; E3 a( i( Z1 z2 v4 A      when"011"=>data<=m_tho;dp<='0';scan<="00001000";; c3 `0 B6 T$ i( v# G
  when"100"=>data<=m_one;dp<='0';scan<="00010000";- b, b% @8 I2 B; \* e
      when"101"=>data<=m_ten;dp<='0';scan<="00100000";
: E2 I, u6 \2 B9 x      when"110"=>data<=m_hun;dp<='1';scan<="01000000";3 D3 F. R' I( }  b8 Q" `
      when"111"=>data<=m_tho;dp<='0';scan<="10000000";8 U9 F" c/ m: O# f
end case;
& M# E! b* {, p4 F6 o8 l2 lend process;
( v% v9 I( c6 E- m4 tprocess(data)' q- n7 A1 K( Q0 ^2 T8 o! ^3 T& z' h
begin
: `3 A5 b" C' ?* |/ Zcase data is+ D1 f; h  S! l2 q  x/ ]
     when"0000"=>seg7<="1111110";
* V# U/ y/ g5 ]- \4 J2 g6 j when"0001"=>seg7<="0110000";
9 f8 b0 O& t5 Z5 I9 C; i- Z when"0010"=>seg7<="1101101";, w. }! S  M8 P) O
when"0011"=>seg7<="1111001";
* F7 f( {! \3 a6 S& t when"0100"=>seg7<="0110011";
8 m9 S. E8 Q. M when"0101"=>seg7<="1011011";" h/ U/ e6 j+ E. b  `
when"0110"=>seg7<="1011111";4 v/ S  `4 |: m* ?. D
when"0111"=>seg7<="1110000";
& }! e+ B' G: W6 J6 B when"1000"=>seg7<="1111111";
# q: [/ z3 k1 u7 ]! j when"1001"=>seg7<="1111011";
* O& [( b( M- h6 ~4 N when others=>seg7<="0000000";; s7 b) z* N. c% Z& l. R6 D0 ?0 g
end case;
0 O$ T* K0 K2 c" `# _5 x1 J3 ^end process;$ |9 H7 L& f, T' y( J
end;
" G( c. A; d$ o
  [( j5 e6 _  d* X, ?! l- o1 X
  V9 f0 c" t& O9 S, c3 o
0 N8 W" C" Z! M) S7 W5 U# V3 _+ a+ t$ a2 ~* U9 y3 j
第二個程序是這樣的
回復(fù) 支持 反對

使用道具 舉報

578

主題

936

帖子

4943

積分

四級會員

Rank: 4

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

本帖子中包含更多資源

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

x
回復(fù) 支持 反對

使用道具 舉報

579

主題

911

帖子

5007

積分

四級會員

Rank: 4

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

使用道具 舉報

604

主題

947

帖子

5151

積分

四級會員

Rank: 4

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

使用道具 舉報

657

主題

1025

帖子

5598

積分

四級會員

Rank: 4

積分
5598
8#
發(fā)表于 2022-7-18 15:10:41 | 只看該作者
求大神幫我仿能真一波  并且把這兩個模塊的接線后的仿真也做一下謝謝了畢業(yè)設(shè)計現(xiàn)在就差這一步了下圖是連接完成的仿真圖
7 W9 n8 n4 W' t! m  m- r! E

本帖子中包含更多資源

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

x
回復(fù) 支持 反對

使用道具 舉報

568

主題

922

帖子

4783

積分

四級會員

Rank: 4

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

使用道具 舉報

598

主題

943

帖子

5138

積分

四級會員

Rank: 4

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

使用道具 舉報

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

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

本版積分規(guī)則

關(guān)閉

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


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