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

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

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

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

[復(fù)制鏈接]

585

主題

910

帖子

4977

積分

四級會員

Rank: 4

積分
4977
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2022-7-18 15:06:53 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
library ieee;, z. z& }/ Y, ]; D- x8 d; A
use ieee.std_logic_1164.all;8 l3 p) }# t% s- T( G1 j
use ieee.std_logic_unsigned.all;
2 l% c* d' }( o% B# i2 @entity taxi is0 z" k8 C5 D& P$ X6 {/ y& m
port(clk:in std_logic;' [# c; F; |0 d6 h. Z- E
       start:in std_logic;
" S) D4 V6 i& ]       stop:in std_logic;
- r  {1 E/ i) @3 _       pause:in std_logic;8 i; \: H9 i( @7 G6 s
       speedup:in std_logic_vector(1 downto 0);4 M3 w! G4 N4 R9 N! k4 L% B2 A
       money:out integer range 0 to 8000;$ Y  {( i0 s. D5 V
       distance:out integer range 0 to 8000);
: \3 T( m0 P& Gend;5 K9 V$ v  c9 f$ v" V7 Y
architecture one of taxi is2 d* d5 V3 H6 [' h9 \
begin1 u  S: P4 C" e- Q! x
process(clk,start,stop,pause,speedup)7 ~1 k1 w0 I, C4 w" n# Y0 Q  u
     variable money_reg,distance_reg:integer range 0 to 8000;) ~% Z8 k: W  F5 m$ p7 t
     variable num:integer range 0 to 9;( b8 K, h3 O2 k3 J8 H/ G
     variable dis:integer range 0 to 100;
, q8 m7 S% @* R0 E     variable d:std_logic;; Y5 B% u, ^, c8 v
begin& H) E8 ^4 P. K; h4 o, |
if stop='1'then! }/ ?1 y$ k0 L! w
      money_reg:=0;2 U, d8 d3 u3 T+ W& ?4 v
      distance_reg:=0;
/ C( T9 D* w8 Y5 z! k5 n( J      dis:=0;
4 Y' w' a9 p- }0 g, `, v- O# u      num:=0;
  {' g* [* p8 I2 G4 z* r8 [3 Relsif start='1'then6 @+ q& v4 ?# H
      money_reg:=600;5 S6 U9 p( @: ~7 C# ~$ O
      distance_reg:=0;+ Q, D$ `  Y) x3 _. u4 i+ H$ Y6 k
      dis:=0;: ^2 j/ h* `- ^
      num:=0;
3 \( u6 n+ y) [% |. N( b4 celsif clk'event and clk='1'then
7 A7 k5 ]% j1 T: _) x% K3 h       if start='0'and speedup="00"and pause='0'  and stop='0'then% n8 }3 ~& `7 c: x. R. |
            if num=9 then2 }$ ]8 l7 [% x0 v9 R0 M! c
                 num:=0;
7 t; D; o* S* F4 l% k" l+ X+ c                 distance_reg:=distance_reg+1;
/ |# E) k1 l) u# n7 b. B                 dis:=dis+1;8 U& ?# S! B; V& {8 Y% C  u
              else num:=num+1;
0 Y0 ]% ]  m' a# n' ^              end if;
. P8 \0 L) X- o3 x$ X& xelsif start='0'and speedup="01"and pause='0'and stop='0'then
' x( _; D" T1 b0 F- Y   if num=9 then
1 T9 s, K8 D% d* Z" {! C        num:=0;
' s6 J; v- M! F( q& N, M0 E        distance_reg:=distance_reg+2;
1 r: E% q) p9 ?! A/ z9 {  B        dis:=dis+2;1 \- f0 x  Q8 H% j3 R7 H# Z! U
      else num:=num+1;
- w% t2 G- q/ I      end if;
+ g: w8 k) ~9 [4 @7 E! ielsif start='0'and speedup="10"and pause='0'and stop='0'then
4 ?* c" c" S" V* k8 g% ~) W    if num=9 then
6 S1 o5 T/ J' a, @, N+ _5 y! @  O        num:=0;: a: O  |$ S) B. x& d, @3 l
         distance_reg:=distance_reg+5;/ N. O8 [2 \/ \# _; U' t6 N
         dis:=dis+5;
6 W& C" C1 @, R! @4 O  `8 [; `    else num:=num+1;
" p* h# Y0 k. m! W- _* ~4 S/ ]    end if;3 B% w3 i8 m) ~4 _! c: N+ g8 \- A
elsif start='0'and speedup="11"and pause='0'and stop='0'then. q& L, C" z' f4 F; _5 T9 |9 d5 B
           distance_reg:=distance_reg+1;  H. I! e2 u9 |  [( j- B6 C  v
          dis:=dis+1;
7 _" ~( D9 M$ k# t- v7 D5 X+ mend if;
2 M4 E) ]( X( ]$ ]1 o2 [6 dif dis>=100then! ]0 I7 ~9 o; V% n+ P
         d:='1';$ y1 w) z1 Y7 r7 C8 u$ p' z) I
         dis:=0;
4 ^+ [  K0 f- s- g      else d:='0';) q9 N2 U4 R5 s
end if;4 n0 n8 A8 A3 h; d
if distance_reg>=300 then- j0 O2 d  w3 P+ C9 n
       if money_reg<2000and d='1'then8 z% ^8 R# h. W/ ~4 H
                money_reg:=money_reg+120;; w# x2 U2 q% p  Y! {8 W
       elsif money_reg>=2000 and d='1'then
9 J3 c9 g% E) C7 J$ X2 b' Y$ X             money_reg:=money_reg+180;
. W4 A' ]& g; J       end if;
! x) d4 ~) e9 f. Q( \    end if;2 q  Z1 l5 o, h1 V
end if;
4 |: a2 y4 G& l; p& l3 v    money<=money_reg;1 S7 Q1 v4 s+ r7 k, ~, Q
    distance<=distance_reg;% i: s. u9 L7 M- O- |) f% Q' F: y. t5 ~
end process;
" y2 G# y4 B3 [end;8 T7 [3 ~- p$ z
程序是這樣的,

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 | 只看該作者
到仿真這里我實(shí)在是不知道要在每個(gè)輸入和輸出端口上面添加什么信號,哪位大神可以幫我看看

579

主題

911

帖子

5007

積分

四級會員

Rank: 4

積分
5007
地板
發(fā)表于 2022-7-18 15:08:19 | 只看該作者
library ieee;% L/ `+ y2 B& O* T+ J
use ieee.std_logic_1164.all;
9 ^5 W! }3 z( a  O' G% {* C4 Zuse ieee.std_logic_unsigned.all;
. M- }2 I+ }4 X) Uentity decoder is
. |, L1 o+ Q- E9 w3 h" [port(clk20mhz:in std_logic;
- F+ e. l  {5 ~3 ~      money_in:in integer range 0to 8000;  a+ g! f7 J3 n
distance_in:in integer range 0 to 8000;
: r/ x2 Z1 }# U. Vscan:out std_logic_vector(7 downto 0);
+ w/ @# m, o# Xseg7:out std_logic_vector(6 downto 0);
+ K3 A6 w2 C& Bdp:out std_logic);
; r" l' R! w2 N: tend;
( E% Y4 F& j0 D, o. e1 earchitecture one of decoder is* R' n' L0 x4 s1 C. T8 \; ^
signal clk1khz:std_logic;, |% N" m* W9 J1 g/ O! i$ {9 _
signal data:std_logic_vector(3 downto 0);
& @6 x! t3 C) {) H8 usignal m_one,m_ten,m_hun,m_tho:std_logic_vector(3 downto 0 );1 }5 O6 \0 H, @4 p
signal d_one,d_ten,d_hun,d_tho:std_logic_vector(3 downto 0);
) _$ Q6 F8 Z) Q% R0 y# m1 ubegin
" t' ]+ d: T1 b# dprocess(clk20mhz)
. j, q  L% ]% @9 ?variable count:integer range 0 to 9999;
, q4 D% [3 s  p6 S0 k% hbegin
; k' ^% I4 N5 W9 d2 k! B5 xif clk20mhz'event and clk20mhz='1'then
0 q& k4 P" }, `2 P2 G, |( b* V, K& ~& M   if count=9999 then clk1khz<=not clk1khz;count:=0;' E" [% Z% E8 S- ^. o# H
else count:=count+1;
) `6 V0 N) m2 H7 X" `. Zend if;
( s. i) G4 V* vend if;
, g9 G* Y- F3 D- Z/ P9 Rend process;
- y& }8 e. |2 _process(clk20mhz,money_in)
% w/ r. i7 F8 n3 ?# P/ }0 {; U! [     variable comb1:integer range 0 to 8000;
- `8 o6 h& f) A; Q4 P- g variable comb1_a,comb1_b,comb1_c,comb1_d:std_logic_vector(3 downto 0);
1 C" f0 d* B' Bbegin+ K" g% X- `- I, c& B
if clk20mhz'event and clk20mhz='1'then
- M# g& E8 q& @* O$ {& B6 X9 V      if comb1<money_in then
$ o0 R+ ^" @5 S! Z  J9 O# D7 K     if comb1_a=9 and comb1_b=9 and comb1_c=9 then7 T# t/ i# m& L/ o; [
     comb1_a:="0000";- i# @4 M$ c  c9 u& u. D
comb1_b:="0000";
1 O3 D* g3 ^5 A. p5 {& I& e/ H! j/ [comb1_c:="0000";
, t. U2 s' `2 T* l4 g, Ncomb1_d:=comb1_d+1;
3 V% j# G; ^, a/ @; c, `/ g+ Mcomb1:=comb1+1;
0 i8 @; U9 W5 Z" B$ s' Melsif comb1_a=9 and comb1_b=9 then; P: R5 k4 P0 M" w6 g- N
comb1_a:="0000";
! s: l; \3 K1 M( ~( {comb1_b:="0000";1 {1 n/ H, L! O( e
comb1_c:=comb1_c+1;7 G, `% I( T6 a9 E
comb1:=comb1+1;" i6 b# @6 r5 i  v+ ]0 g
elsif comb1_a=9 then
- A" j3 B1 m7 k  d      comb1_a:="0000";6 U; ~- g& i) J) x$ [& o. l
comb1_b:=comb1_b+1;! |% X% a/ A7 K" u- [3 g) p+ j
comb1:=comb1+1;: w6 x9 @3 A: X9 I; o& a% |' I; ]
else
6 h8 A5 ]  A6 Y' P      comb1_a:=comb1_a+1;
) G8 x" Y8 @9 y* ^# ^& Tcomb1:=comb1+1;
1 {" G- n' f% G6 ?  end if;: ]" z! J8 p* R; t
  elsif comb1=money_in then
9 l' Z8 b8 R1 T5 g     m_one<=comb1_a;
% p4 Y" O( u; A' D, U8 Km_ten<=comb1_b;
+ Y0 n% Y) c* F: c8 {9 tm_hun<=comb1_c;6 X: U6 d0 n3 q4 _$ K( a; R
m_tho<=comb1_d;' M7 f8 y) I, C. Q5 w- C
elsif comb1>money_in then
5 e0 [3 J4 ^' }5 d7 H8 R& c9 f           comb1_a:="0000";
7 C1 U, y+ w. {: H     comb1_b:="0000";( o; r* _0 n7 ]+ u- N# S" j
comb1_c:="0000";
2 _- u$ \* v2 }$ ]: i6 i     comb1_d:="0000";
8 J% {- \1 R6 ]" lcomb1:=0;
5 f1 ?3 I4 }; Nend if;
4 ~4 v# e+ P4 r, Fend if;6 c) e* \) s/ m6 G0 r! K& X$ j1 r9 K3 j
end process;
+ H9 D5 A7 J, Y$ |7 \process(clk20mhz,distance_in)" Z: b) F  p3 m- {( y5 j1 \
      variable comb2:integer range 0 to 8000;; _4 f0 _' B  d0 R1 u
variable comb2_a,comb2_b,comb2_c,comb2_d:std_logic_vector(3 downto 0);9 d# `+ [% a4 D
begin6 @7 n" l+ \% g
if clk20mhz'event and clk20mhz='1'then
4 y: S! r5 m' b* k/ ^: c      if comb2<distance_in then+ X4 ]% ^& c. W$ h- ^
            if comb2_a=9 and comb2_b=9 and comb2_c=9 then
& J% n* h* n8 `3 a. Q% W                 comb2_a:="0000";
2 i8 y! j! C# G          comb2_b:="0000";
8 e' [+ J4 }0 q2 p+ V          comb2_c:="0000";* \) ?- ]" |$ a* A
    comb2_d:=comb2_d+1;
4 D# [( Q: e0 Q0 g2 K6 I0 [, K    comb2:=comb2+1;
6 N; j. b* `0 m) Q4 N" z  r% xelsif comb2_a=9 and comb2_b=9 then6 ~6 ?) Y  p2 S) k
            comb2_a:="0000";2 h5 _  @1 A6 ~7 A5 _$ K- i3 s% n
       comb2_b:="0000";1 ?' X( l$ V( w& ?  g) r
    comb2_c:=comb2_c+1;1 C9 _4 H5 @+ t% B( d
    comb2:=comb2+1;: y1 [7 z5 }7 H3 D  W# N
elsif comb2_a=9 then, @) m- m( D: X/ f2 w# M2 O& o. \
            comb2_a:="0000";
& s: l. e' C; P) _* T! P  D      comb2_b:=comb2_b+1;
0 y# D- S9 B) T1 F      comb2:=comb2+1;) j4 m  A5 {% Y1 F
else
) k% f9 Z& R! A+ W               comb2_a:=comb2_a+1;
  ?% o7 e& b1 f) F  M4 I3 m      comb2:=comb2+1;, t# Q1 N4 x4 }$ L8 d% G
end if;; I) J3 Z. _! A8 f; c( w, B* r
     elsif comb2=distance_in then
8 r1 ^5 b) b" q" d6 ?/ u9 P               d_one<=comb2_a;2 c' V9 g; M" g; R$ l, V
         d_ten<=comb2_b;% n) U" _# W) P! h$ y3 V
      d_hun<=comb2_c;
) s5 N' W5 w5 R      d_tho<=comb2_d;: q) \; u1 T2 f5 C! f! r1 W4 x7 j
elsif comb2>distance_in then
; w1 O& C' v# C# c* g& ~               comb2_a:="0000";
1 V( H& j' Z9 [: x' l" [" O        comb2_b:="0000";( o. ?, s7 v$ N, }: X
        comb2_c:="0000";
# q! v/ e( s7 ~. H! S' I        comb2_d:="0000";
& _$ d% z# ]; n# M* a        comb2:=0;; D- q$ E. g# }! x
   end if;
1 K- o  Z8 U) z; }. M  N2 pend if;
) y& D$ o) r" ^' j, @end process;4 `; o8 W( f% s
process(clk1khz,m_one,m_ten,m_hun,m_tho,d_one,d_ten,d_hun,d_tho)4 D6 M2 e% [4 L
variable cnt:std_logic_vector(2downto 0);' {5 s) ~- X& U& G9 I1 g, x+ ]0 h
begin+ ^# C3 l; s6 u* _2 W! r' K1 s
if clk1khz'event and clk1khz='1'then
* d1 d  L; g# Q) [+ T: ^      cnt:=cnt+1;
' W$ m& R: B4 B) `+ Nend if;
9 S2 H0 U4 E, l3 u! P: L& B8 Fcase cnt is
6 `; R: g- L) J2 w. a) A      when"000"=>data<=m_one;dp<='0';scan<="00000001";" P5 o2 t0 y/ Q0 T
      when"001"=>data<=m_ten;dp<='0';scan<="00000010";) H" I6 x& Q& p, }* W
      when"010"=>data<=m_hun;dp<='1';scan<="00000100";) S6 ^1 `* n; O# T6 C0 W* p( m5 M
      when"011"=>data<=m_tho;dp<='0';scan<="00001000";
& f8 x% k4 j. o5 {! g; c$ X8 d  when"100"=>data<=m_one;dp<='0';scan<="00010000";
  J) i: L/ I$ {& Q      when"101"=>data<=m_ten;dp<='0';scan<="00100000";5 T" B' R- F3 C( w
      when"110"=>data<=m_hun;dp<='1';scan<="01000000";
5 P' Q  ^8 G( o, c      when"111"=>data<=m_tho;dp<='0';scan<="10000000";" h  {) K: @7 c- E+ n
end case;: f; Q, s0 ?% Z, b
end process;  n$ t8 _; d) K
process(data)
" Y* [- E6 D) Q# dbegin
1 s; ^9 w  \$ ]case data is0 p2 x, f3 E0 E1 g& S3 ?$ r% |
     when"0000"=>seg7<="1111110";0 z4 f) g$ K0 |6 ?( g
when"0001"=>seg7<="0110000";) I3 d* {  G' A7 ?- ?8 d2 S  h  t
when"0010"=>seg7<="1101101";0 T8 H4 L; u$ Y2 C
when"0011"=>seg7<="1111001";
" l3 M( d) s  _! B; i: u when"0100"=>seg7<="0110011";1 `1 Z9 E: D( s9 s9 r
when"0101"=>seg7<="1011011";- Y2 J8 v% J1 _2 y6 q# I
when"0110"=>seg7<="1011111";
2 D2 a4 E2 ?, \7 d& ]- A0 _ when"0111"=>seg7<="1110000";9 m' E; h; Z$ g; ^) w, [. v1 ~) Z
when"1000"=>seg7<="1111111";
4 E/ Z2 v0 \: d$ X when"1001"=>seg7<="1111011";
" f, f7 Z3 M7 ~) _# [; y) H6 ^ when others=>seg7<="0000000";% k' l& X# c5 P/ A# h/ g0 |+ A
end case;
5 S9 I/ q; p& x/ X4 O3 Rend process;5 ^- u( `; G6 {* y& e9 ^+ x/ a
end;* P% o' Y; w# Y" s/ G) ?

: [* A# V& ^( {; L: l+ g8 U/ {8 G( j+ Y

' S/ t! y  F& E: g7 u5 L6 t( d# n% b1 I/ n$ f+ q
第二個(gè)程序是這樣的

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 | 只看該作者
第二個(gè)模塊的仿真哪一步是上面這個(gè)圖

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 | 只看該作者
求大神幫我仿能真一波  并且把這兩個(gè)模塊的接線后的仿真也做一下謝謝了畢業(yè)設(shè)計(jì)現(xiàn)在就差這一步了下圖是連接完成的仿真圖" I- J* r5 P- [: K

本帖子中包含更多資源

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

x

568

主題

922

帖子

4783

積分

四級會員

Rank: 4

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

598

主題

943

帖子

5138

積分

四級會員

Rank: 4

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

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

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

本版積分規(guī)則


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