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

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

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

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

[復制鏈接]

585

主題

910

帖子

4977

積分

四級會員

Rank: 4

積分
4977
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2022-7-18 15:06:53 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
library ieee;
5 s' A0 C, y% s2 xuse ieee.std_logic_1164.all;
1 M; ~  W8 ]& D2 \8 Huse ieee.std_logic_unsigned.all;
% N. f  O% x, l, d5 M" K- A5 mentity taxi is+ J( s7 i! x% C( y2 R3 q. Y
port(clk:in std_logic;
+ s* J( p7 f6 m+ b" r9 ^8 q       start:in std_logic;
# W9 m7 y2 N8 R7 S       stop:in std_logic;
. _0 h7 B' L4 X4 s  w       pause:in std_logic;
0 b! K7 t' r" w% \5 {5 z  W- q       speedup:in std_logic_vector(1 downto 0);
% z2 k/ z) z  d) o/ t1 J4 c0 S       money:out integer range 0 to 8000;, T- q7 C* J; m2 V9 G
       distance:out integer range 0 to 8000);
! |8 `& S) O, f+ S9 ]end;" T  @+ B" H# }& k9 C  L
architecture one of taxi is8 K; ]6 n+ z: A9 \, z3 n- J6 x
begin- W9 |) J3 x0 q, D; U* M
process(clk,start,stop,pause,speedup)2 X2 q$ i8 L* {) w! ]3 B
     variable money_reg,distance_reg:integer range 0 to 8000;+ _; S0 h$ V. p& k
     variable num:integer range 0 to 9;
3 L5 \/ z' i  E& ?8 V9 n     variable dis:integer range 0 to 100;
. d5 ~6 x! @# w& T& D& |     variable d:std_logic;
4 ?; E3 F6 A* J% m* N2 U2 p3 O; }begin( a5 @  Y- Z& H6 y
if stop='1'then, _7 l' C. p2 x
      money_reg:=0;
' p8 x/ H3 c  s  l# w4 c      distance_reg:=0;
- L8 z% _5 Q/ H5 `& `9 w      dis:=0;
0 Y0 j' H' n9 N) i      num:=0;
; `5 L( I, A+ ~+ W: [! Zelsif start='1'then4 B: ?) k! m0 f# L  f( c
      money_reg:=600;$ Y" _0 J( ]4 v4 b
      distance_reg:=0;* E! W1 e' z- _" ]* q
      dis:=0;
0 p/ q+ Q% q$ m: j% U! j      num:=0;5 \% L+ f& A2 U! {6 i+ V+ Z
elsif clk'event and clk='1'then
7 @& x! _, s1 O* a+ u5 I/ J* Z: n       if start='0'and speedup="00"and pause='0'  and stop='0'then: d5 q2 q3 j0 c0 v3 C  ?, F: f6 g
            if num=9 then
, j' o7 a. u/ @6 [                 num:=0;
2 {" k7 t, V. P5 d  i- Z) t. j                 distance_reg:=distance_reg+1;
& h9 R: e2 z. v5 x                 dis:=dis+1;! Z0 R, u; `+ F0 Z
              else num:=num+1;
9 z! k6 f3 m# Q' X1 e              end if;+ k3 F, O2 g5 d# b4 e% s, |
elsif start='0'and speedup="01"and pause='0'and stop='0'then
- C* {* m) W1 c   if num=9 then; m8 a0 x- d  _' D6 W7 m( i
        num:=0;& @; e+ [& p3 s0 H
        distance_reg:=distance_reg+2;
& P1 K! c8 r0 ]' l5 _! e1 b        dis:=dis+2;
/ G: j. b* s  ~4 k$ t      else num:=num+1;
; F) y4 B8 w. v9 M% s" R      end if;
$ e5 g  o8 ^2 U) ]1 helsif start='0'and speedup="10"and pause='0'and stop='0'then
+ k6 c" x- h- x5 ]- w4 J& e    if num=9 then0 u; {4 _" Z% U3 L  N$ [6 L
        num:=0;
  L' d; v. K; v- x$ Z         distance_reg:=distance_reg+5;
  n1 N# n% t% S1 j( D( ~         dis:=dis+5;! [- R( M; Y! B4 x) ^1 C- ^
    else num:=num+1;2 u3 H3 s2 Z3 Y$ m8 f6 t
    end if;$ g- m& x( @. L' j% e9 x
elsif start='0'and speedup="11"and pause='0'and stop='0'then* p  u2 `" L- q+ W# o* K
           distance_reg:=distance_reg+1;
9 a9 ~% M" {" Q2 ?! ]0 e          dis:=dis+1;* y+ E8 m$ P! T: o. g
end if;1 h# p) j& Q7 f3 `. Z# U
if dis>=100then
& ]3 j/ i( H" a, b6 ?         d:='1';, ?7 t# Y  D" E+ b8 E
         dis:=0;6 I! r; A% o8 g" j) H
      else d:='0';
% q" R8 x0 L9 C2 D& u6 gend if;/ r* N# D8 W  q  a% H- j
if distance_reg>=300 then* O3 z1 r* p# g/ `" z
       if money_reg<2000and d='1'then
3 g. d% }) b; }                money_reg:=money_reg+120;
" g1 z; \2 T* R2 ]       elsif money_reg>=2000 and d='1'then
& e- w4 T. t& r  Y             money_reg:=money_reg+180;
8 Y% c) L7 ]/ t- a1 [( ^       end if;5 Z* l5 ]( J9 \2 u9 u; ^
    end if;
1 N2 J  d# j/ f/ J. x4 c( q: Jend if;$ d% ~1 T9 U( B( P& t/ }" t* K
    money<=money_reg;% n, }- ^; u8 \
    distance<=distance_reg;
7 S5 N4 \9 B  E" c; p! U4 Lend process;
2 N: K8 S9 E& Y, k/ }* b1 ?end;
' w1 @) P% B/ W( U程序是這樣的,
回復

使用道具 舉報

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;1 J2 \, J5 B5 c. I& M+ b; ?; t9 K! y
use ieee.std_logic_1164.all;2 y5 F1 ~* D9 i0 M
use ieee.std_logic_unsigned.all;
" J# E" j" V  k6 O' Hentity decoder is
% ^& s! t- w- bport(clk20mhz:in std_logic;
6 E# v& B$ W: ~. ~      money_in:in integer range 0to 8000;0 k$ f' x! `8 y; S" F7 b1 X7 V6 ~* C, H
distance_in:in integer range 0 to 8000;
7 _0 P0 M0 T! n% V9 T7 Z7 q) Gscan:out std_logic_vector(7 downto 0);# g7 y. `* a& R3 x+ z+ K
seg7:out std_logic_vector(6 downto 0);: }  y- k4 r5 s0 @0 M  U
dp:out std_logic);0 h% M- g1 I6 T% }  \
end;
# @! B" ^+ S- [6 farchitecture one of decoder is
/ s$ n8 s, A0 k' a8 |$ p signal clk1khz:std_logic;
% j. q1 o. U* z; i( Z- Wsignal data:std_logic_vector(3 downto 0); ; F4 u0 t1 q% V: o; E4 ?2 b
signal m_one,m_ten,m_hun,m_tho:std_logic_vector(3 downto 0 );! c* m2 ~' c' Q7 b: U+ q
signal d_one,d_ten,d_hun,d_tho:std_logic_vector(3 downto 0);8 K( B9 s7 C. n2 z7 v& V
begin( ]* e2 a, V# x1 Y; p$ ]
process(clk20mhz)
& y% D2 g1 x6 qvariable count:integer range 0 to 9999;
! ?9 H" p8 O  v$ Xbegin. \2 f7 J0 n; W+ B. m
if clk20mhz'event and clk20mhz='1'then, a2 J( N" X' L7 n, H
   if count=9999 then clk1khz<=not clk1khz;count:=0;4 a1 p) g  J' Q& I
else count:=count+1;8 m) v7 X7 t* T5 q1 h1 p4 Y
end if;
( K$ j4 A# ?9 v. xend if;
2 m# v9 y! W3 j) E- V+ |( c2 `2 Gend process;
0 k" N& ]* \9 Z7 g3 @, r  ~  C% Cprocess(clk20mhz,money_in)
7 K* U# J6 }1 |     variable comb1:integer range 0 to 8000;/ c8 p! m7 b0 n+ J
variable comb1_a,comb1_b,comb1_c,comb1_d:std_logic_vector(3 downto 0);
( e% Y  ]2 I9 p1 s6 w. ], ibegin& Y2 L2 r, l) p  M; h1 V
if clk20mhz'event and clk20mhz='1'then- H7 P- V3 M5 _+ b
      if comb1<money_in then; z: g% V0 }, t' Q+ D% n9 G; h
     if comb1_a=9 and comb1_b=9 and comb1_c=9 then
2 H$ F2 M2 U( {     comb1_a:="0000";
5 b% l' Y. x6 I& q8 Dcomb1_b:="0000";9 }. M9 g4 j; E8 u- ~7 U% A
comb1_c:="0000";
8 X/ D# _9 ~5 c" ~! W( Fcomb1_d:=comb1_d+1;
; N6 o5 e* f4 T) Wcomb1:=comb1+1;; F% `" o2 \' t8 O3 ~% D7 h
elsif comb1_a=9 and comb1_b=9 then+ s9 S# W& E% w
comb1_a:="0000";4 J) x: _" Z5 \8 q1 c- ]0 o
comb1_b:="0000";" k2 M4 u% ?1 Y! d! g8 ~; s
comb1_c:=comb1_c+1;9 \5 a/ R( F% L: b" W1 A! X
comb1:=comb1+1;3 L' ~1 Y- w& S- L: l1 g0 @
elsif comb1_a=9 then
! Q1 Z4 V* e. O- e  e# V; Z      comb1_a:="0000";/ E' \, R0 h; c* Q$ s
comb1_b:=comb1_b+1;; z0 k2 f  R/ b9 _$ e: |
comb1:=comb1+1;
5 e. q# m  ~  k4 N2 @8 F else
, d+ l6 e! {  E) Q) T$ a, H6 q      comb1_a:=comb1_a+1;% g" |9 G# d. Y; ]) e9 J
comb1:=comb1+1;
# h8 E" S/ e$ E; G  end if;
  F, y4 T' l: Y6 f0 N9 r- }" s  elsif comb1=money_in then
2 E$ ~& ?4 F6 _     m_one<=comb1_a;8 H# _# ]$ c2 D8 Q
m_ten<=comb1_b;
; D, l) _" Y# B3 d  @' q' i, Em_hun<=comb1_c;
8 _! k9 Z6 ^+ V8 Q# ]3 vm_tho<=comb1_d;
: b7 z3 b3 r% w5 Z$ e3 w( ~7 Zelsif comb1>money_in then
2 a% R1 l. J, Y! j* ?- N3 L! {           comb1_a:="0000";+ M1 k! i6 m+ x# i" X
     comb1_b:="0000";
( f/ o% L( ^6 Gcomb1_c:="0000";
3 T. ~$ X9 m  E     comb1_d:="0000";
! g! _6 ~. o9 b) F$ _2 j8 ?comb1:=0;
+ H+ A6 B* {2 x" O; }end if;
- y( l: k+ P  y, k0 A  jend if;2 ^6 |( Q7 O# d' h: ^1 H. e7 I
end process;/ ?2 ]/ H. y6 ]* Y2 L2 Y( ]
process(clk20mhz,distance_in)
5 L& ^5 R# q# G      variable comb2:integer range 0 to 8000;
* C  X% ]6 q  k+ C9 h& A* uvariable comb2_a,comb2_b,comb2_c,comb2_d:std_logic_vector(3 downto 0);
# c* u" ~% V, f) G2 H" cbegin
6 o$ E' @3 w$ X$ K$ u$ N! d3 x- vif clk20mhz'event and clk20mhz='1'then2 }' I, i2 `" r
      if comb2<distance_in then
; W8 j' n4 J$ P/ S/ k* h            if comb2_a=9 and comb2_b=9 and comb2_c=9 then
" f5 e$ h7 `7 Y, J% K                 comb2_a:="0000";- f$ L) |( X4 M. e+ x2 d
          comb2_b:="0000";6 d3 i; F7 I& w! b& `: m1 [
          comb2_c:="0000";
4 b: O% v  G( ?% C    comb2_d:=comb2_d+1;
3 z9 E: d+ K: ?4 c- ]3 N& n7 b    comb2:=comb2+1;
2 m2 w" ^4 o, M/ i( oelsif comb2_a=9 and comb2_b=9 then
! ^9 G7 b% T5 m( u            comb2_a:="0000";. `# `+ V! z3 s0 }
       comb2_b:="0000";
. J1 W8 n  Q/ g8 _$ b/ J$ a    comb2_c:=comb2_c+1;% `% i$ o. d  C
    comb2:=comb2+1;
1 l! ~5 V( ~* `2 u* C8 C5 Z, [' xelsif comb2_a=9 then
  O  ?1 E$ t) i8 {+ r3 w# d8 n            comb2_a:="0000";
9 v* _4 b* ^$ M3 U( N8 q      comb2_b:=comb2_b+1;
( T# K3 z  T' w/ T      comb2:=comb2+1;  e" H; A" Z7 F9 I/ `0 b* C( M
else" I. m8 M( y9 `3 n) C
               comb2_a:=comb2_a+1;7 Q2 J1 n" \* _8 J0 O
      comb2:=comb2+1;
2 v6 o' C! [* i3 d4 E& V- b7 D! I6 Hend if;* w7 A4 G- Q3 ]* _0 k0 x
     elsif comb2=distance_in then/ c6 x. N" y( ~  M1 y( U
               d_one<=comb2_a;7 x/ \! W0 l& u+ g& j/ [4 x
         d_ten<=comb2_b;
& a' m) _+ q: ]6 ~8 j      d_hun<=comb2_c;2 W* U2 l- D( R# P! g* M. m
      d_tho<=comb2_d;7 j* O: l) g' W( [4 V6 J
elsif comb2>distance_in then
* Z8 Q, }3 V: Y+ m- F               comb2_a:="0000";& O  O) F& O& b# y6 U# |
        comb2_b:="0000";
1 g1 Q/ G/ T, A+ t+ F: P1 T7 w/ A        comb2_c:="0000";4 S* G- \' m1 [9 f/ Q* t3 l
        comb2_d:="0000";
- A9 P2 P9 i/ i% k9 G2 j! C        comb2:=0;
2 Q1 n( h0 ?* u7 \, L$ M3 Z* F# Y' n   end if;
6 f8 C, @. a: tend if;  E& l- k" A$ F# L( ^' m: q' }4 X
end process;
% z9 V# f1 [% I% @process(clk1khz,m_one,m_ten,m_hun,m_tho,d_one,d_ten,d_hun,d_tho)
, p' _' L6 R) Y, Nvariable cnt:std_logic_vector(2downto 0);6 y; i1 N! F. w' u/ Y, h
begin
! h( \/ H, j( d7 ?, ?  H' bif clk1khz'event and clk1khz='1'then( {$ T: F6 M3 D; `- M2 ?2 l) q
      cnt:=cnt+1;
. B, \! o& Q# Eend if;
8 O/ k/ b% Z; Lcase cnt is
# V% y; B& g0 o      when"000"=>data<=m_one;dp<='0';scan<="00000001";+ f& }* O+ f* Z0 x4 x3 G
      when"001"=>data<=m_ten;dp<='0';scan<="00000010";
& s( a: E: A' A+ w9 j5 b/ o      when"010"=>data<=m_hun;dp<='1';scan<="00000100";' g3 I/ _% _* D6 C/ A
      when"011"=>data<=m_tho;dp<='0';scan<="00001000";
+ C: s9 n: b! S  v" ]  when"100"=>data<=m_one;dp<='0';scan<="00010000";2 e6 H3 w. \1 V: E! d! y& N
      when"101"=>data<=m_ten;dp<='0';scan<="00100000";$ w& o: @1 I+ N6 F' |8 X
      when"110"=>data<=m_hun;dp<='1';scan<="01000000";
0 t& ?2 \4 n/ V& z2 C" n      when"111"=>data<=m_tho;dp<='0';scan<="10000000";! H& M; N! s9 b/ M* \- I
end case;3 O2 B$ J+ X+ i2 {
end process;# S! H6 ?$ Z' c0 R
process(data). R2 W/ e& s0 Z. M8 P2 h8 B" n
begin
7 n# y) O* O% E" }, H2 @2 }case data is
, L6 {; w% b3 P     when"0000"=>seg7<="1111110";  g, F% i0 i+ e
when"0001"=>seg7<="0110000";
( E8 u2 D2 B$ D when"0010"=>seg7<="1101101";
- U- ]1 q) o" h- o( i when"0011"=>seg7<="1111001";
( }( h0 R, W" j1 m9 u8 @ when"0100"=>seg7<="0110011";3 z8 a. h* f+ p1 g. |# P* {9 W
when"0101"=>seg7<="1011011";
5 O* k. t) n) v2 J. b+ l, o) P when"0110"=>seg7<="1011111";. Q$ S9 _* L* n# g
when"0111"=>seg7<="1110000";
3 \( N9 L/ c7 j4 }7 G2 O6 u0 X' x when"1000"=>seg7<="1111111";
* z1 R. @5 h# Z5 N- E% A when"1001"=>seg7<="1111011";
6 g* {/ E* u4 l: r+ O/ r$ S when others=>seg7<="0000000";5 P) e4 r  R) C; i
end case;
: Y5 R2 |3 ~* w6 l0 Q- I$ Nend process;1 Q6 y1 h5 f' F* s. Y/ i) I$ W/ {  c
end;! e. F* }  j& |+ W, I
' H' w- R' O) Q& w$ `8 a  G% y/ |  L1 t/ A
, ]# W6 o$ f, n4 o

' y! _" Y4 t0 f. c( x$ N9 f& O% A+ m* }
第二個程序是這樣的
回復 支持 反對

使用道具 舉報

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)在就差這一步了下圖是連接完成的仿真圖& J; _+ V4 O& C. j9 n( q) y. x

本帖子中包含更多資源

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

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