电子产业一站式赋能平台

PCB联盟网

搜索
查看: 3637|回复: 11
收起左侧

求助帖 求大神帮我看看这个要怎么仿真?

[复制链接]

585

主题

910

帖子

4977

积分

四级会员

Rank: 4

积分
4977
发表于 2022-7-18 15:06:53 | 显示全部楼层 |阅读模式
library ieee;, v* b# Q/ ~6 Y3 z0 `  A" D
use ieee.std_logic_1164.all;5 [4 w+ u9 b$ o  T
use ieee.std_logic_unsigned.all;
+ ~$ o% p: ?; A( ~- H  }. p, }entity taxi is
; ]4 U( Z3 s4 }port(clk:in std_logic;
: P1 f6 @# [- K$ b5 V! ~       start:in std_logic;
; f5 R. x- C) t& }       stop:in std_logic;
  Q5 H+ [! w. c8 F4 _       pause:in std_logic;* Z1 K6 y- n7 I7 d/ C& a
       speedup:in std_logic_vector(1 downto 0);
- j9 w* Z' S/ o2 {! t+ S       money:out integer range 0 to 8000;
/ Z. h5 D7 i; r( y. q: w8 J       distance:out integer range 0 to 8000);/ \9 L: t/ f" W& {
end;
+ ~3 S* z" `) v9 ~architecture one of taxi is# p1 H$ q8 i2 F2 j( F
begin
6 l$ s3 h( _7 aprocess(clk,start,stop,pause,speedup)
2 T$ a% u" l. v* o     variable money_reg,distance_reg:integer range 0 to 8000;
5 ^, u) x7 ?* {8 b6 ?, I     variable num:integer range 0 to 9;
# t5 n7 c6 k0 ^0 r) E$ R* ^     variable dis:integer range 0 to 100;! c. h% U! {* j# M2 ~
     variable d:std_logic;6 q* o& D7 b1 B- t4 m$ M! l8 N
begin
( o0 j$ D% l( _5 F% j. [+ hif stop='1'then' {# t  g  \; ~1 z1 m8 ]& D
      money_reg:=0;( X# R- F5 R8 w% k5 n) ]; ?* I
      distance_reg:=0;2 Y" o1 c  L. V$ Z" v- a, Y; q  ~
      dis:=0;$ k0 ^1 V# c  e' U- r; g5 T! j
      num:=0;
. L; {0 F7 n) y! welsif start='1'then
& m9 _/ g6 V# |, x  K      money_reg:=600;" i8 f$ a6 C, V3 f9 ^
      distance_reg:=0;
! ]# z8 [& A& I5 k5 x2 z" l! U. [      dis:=0;+ @/ \- r) m0 o4 n; b$ R! _, d
      num:=0;) G5 J6 L6 z* M; i0 y0 j
elsif clk'event and clk='1'then
+ l8 l6 Z6 p) N0 i/ J+ h% v' g       if start='0'and speedup="00"and pause='0'  and stop='0'then
2 v& R! o0 t1 N' m4 I2 @7 `/ z, ~            if num=9 then6 W  }4 t% K$ g3 ?% K' q
                 num:=0;$ Z/ o/ \6 a+ [+ o9 J4 A: @
                 distance_reg:=distance_reg+1;
# Y  t4 z9 O: V. `& u6 U                 dis:=dis+1;
: j! X1 b& }. {1 N. m0 U  |2 o              else num:=num+1;
0 R0 ^1 x# |7 S5 b$ f7 R0 l! U" a              end if;
2 u1 g/ v! t3 K- Y% g* A6 xelsif start='0'and speedup="01"and pause='0'and stop='0'then
: y+ _' G1 {: k7 T2 Y! ~: q   if num=9 then, [1 `( d( G& a# M
        num:=0;
; W* b% _# n" l+ X! N8 K- B- \; c/ L        distance_reg:=distance_reg+2;, u4 _2 v# z) m& P: A+ U6 w
        dis:=dis+2;
3 {2 `+ x. ?' S+ t% W7 F! D9 {      else num:=num+1;% n' ?$ a7 ~3 `& P/ P
      end if;$ t: ^# X& R! z9 H8 ?
elsif start='0'and speedup="10"and pause='0'and stop='0'then
1 h. O' U  k& V  w. W9 H: h    if num=9 then
( |" s3 N4 Y/ }/ _" t' W  s+ L        num:=0;* Q" F) h2 A, H# p
         distance_reg:=distance_reg+5;
5 `0 |# X5 |) _9 ^2 T  ^         dis:=dis+5;
' Q% P8 v" X0 \! c! b    else num:=num+1;5 F' }; J& n) H: V/ B. {; p$ G- X
    end if;
# g' G) i  H$ z+ O1 B) Helsif start='0'and speedup="11"and pause='0'and stop='0'then
6 x* g2 u! n/ F8 V% V+ r           distance_reg:=distance_reg+1;
8 O4 P3 A% [: q' p( T          dis:=dis+1;( a6 n% T8 f% n
end if;
5 B5 ^8 f/ b# l0 s3 F( wif dis>=100then0 S5 O- R6 a6 d# o+ e0 H  y; {
         d:='1';
: R/ ~: x* Y( q* r6 o6 M         dis:=0;
: ^# o' T9 Z' X. P% Y% Q' @4 m      else d:='0';* J8 P; L' W; @% \- R+ O5 s
end if;
# y2 \* h; X9 s$ yif distance_reg>=300 then
- L% [! Q9 k$ c8 M/ i+ b, ?       if money_reg<2000and d='1'then3 s; X! A/ Y4 o! J% J
                money_reg:=money_reg+120;
5 Y9 Q$ n7 S/ ]8 j) d% Q       elsif money_reg>=2000 and d='1'then  B7 m  [' @/ u% J4 g. @1 H- [
             money_reg:=money_reg+180;5 b# T; c* ]) \, Q6 B& r
       end if;
5 {6 o* j/ g3 I8 U/ ?& m& i/ ]- u    end if;
* d0 k' s8 I; Z7 [5 \+ M1 jend if;% J" C" k  B4 Y1 A+ R$ }5 e
    money<=money_reg;8 A( L# E3 L9 ~8 ~5 G
    distance<=distance_reg;6 B# A' K4 T9 x, e% }& R
end process;
) }* a; a* h6 [, z- bend;
! C6 o& Z( H8 R4 [# N$ W程序是这样的,
回复

使用道具 举报

589

主题

924

帖子

4975

积分

四级会员

Rank: 4

积分
4975
发表于 2022-7-18 15:07:14 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复 支持 反对

使用道具 举报

578

主题

858

帖子

4821

积分

四级会员

Rank: 4

积分
4821
发表于 2022-7-18 15:07:36 | 显示全部楼层
到仿真这里我实在是不知道要在每个输入和输出端口上面添加什么信号,哪位大神可以帮我看看
回复 支持 反对

使用道具 举报

579

主题

911

帖子

5007

积分

四级会员

Rank: 4

积分
5007
发表于 2022-7-18 15:08:19 | 显示全部楼层
library ieee;! V( B# D" o% i0 f
use ieee.std_logic_1164.all;' F, w6 a' c+ T$ y. N( M, |0 a- w
use ieee.std_logic_unsigned.all;2 q4 S  E* L9 S6 u  t! @. t+ P
entity decoder is) q/ T" y" U2 ^& O& g: V
port(clk20mhz:in std_logic;
  d: H+ L9 I: P      money_in:in integer range 0to 8000;
5 G6 p! d/ Q2 O" udistance_in:in integer range 0 to 8000;& T- B5 p! o" _. B: q
scan:out std_logic_vector(7 downto 0);
6 X4 l6 _/ G: P, Pseg7:out std_logic_vector(6 downto 0);/ [  `0 R% G1 r4 D% l
dp:out std_logic);
. {. y( |" O' g  W# jend;8 {/ b% h# V) }# Z. i
architecture one of decoder is. m) v0 W, t5 D6 Y: E
signal clk1khz:std_logic;
, F, Q% {/ i) [. s" [8 z5 n9 Esignal data:std_logic_vector(3 downto 0);
# @. D- k) t( F) Q% r7 o% p+ B* Rsignal m_one,m_ten,m_hun,m_tho:std_logic_vector(3 downto 0 );5 B0 i, W0 C$ k
signal d_one,d_ten,d_hun,d_tho:std_logic_vector(3 downto 0);
+ N6 M: L& k4 L3 u' s  a2 F  Ybegin
2 M6 F/ H  x, j4 V8 j  N0 C5 [process(clk20mhz)/ [  b, s" {7 V9 i& P; f  X
variable count:integer range 0 to 9999;, S* y, i! [" s) S: Y
begin
0 m7 [' Z1 a" V% f6 W8 wif clk20mhz'event and clk20mhz='1'then
! g. j, T$ B* w# i( p   if count=9999 then clk1khz<=not clk1khz;count:=0;' ~2 J" H, v2 H8 ~6 L, E
else count:=count+1;
( X. }7 b! q& E2 rend if;7 V1 T: l' ^* X
end if;
  P9 }  b! |$ {$ V3 k1 Zend process;4 R0 `% Y8 Q! N8 V2 L: R
process(clk20mhz,money_in)
/ @; Q' }3 G5 K     variable comb1:integer range 0 to 8000;2 L1 U+ o& }- c4 a$ n& y
variable comb1_a,comb1_b,comb1_c,comb1_d:std_logic_vector(3 downto 0);
/ [6 W- z  k- P5 [& V" {begin
; b; n* V& b4 {6 [* @if clk20mhz'event and clk20mhz='1'then5 u  Z  Z) |7 S3 q
      if comb1<money_in then
5 B/ z6 [" w0 b, n' p# z, U  n( Z4 b     if comb1_a=9 and comb1_b=9 and comb1_c=9 then) e  z) v. X  O6 N0 {1 e' Z
     comb1_a:="0000";5 n0 R7 Q+ B! d- v' ]
comb1_b:="0000";
& {0 l% r/ p$ v( [. jcomb1_c:="0000";% r# l# L) S4 _: j. k' [% p
comb1_d:=comb1_d+1;
* f" n2 M9 a+ h% R- ~: {( y5 ~0 scomb1:=comb1+1;6 a! _2 k- X4 U# y
elsif comb1_a=9 and comb1_b=9 then
- Z, v, _" W: Ccomb1_a:="0000";
1 w  x! ?! q/ Z' P: Zcomb1_b:="0000";
: u$ W1 |. E4 b8 a1 `5 Bcomb1_c:=comb1_c+1;2 |2 F) r9 {: \8 V' m# y
comb1:=comb1+1;$ b2 t0 x7 M( ]1 o# H$ K
elsif comb1_a=9 then
1 j9 {1 J, }7 L: p# k' c      comb1_a:="0000";
% B; {) w- L+ p2 |! Wcomb1_b:=comb1_b+1;
; q5 ~- A3 H  H, fcomb1:=comb1+1;
; b' v# L* ~8 X( h( @8 X  c$ q else3 {: X: U, g- ]2 D* ^  z" V& r
      comb1_a:=comb1_a+1;$ o- J6 x& C% U7 _* ~" C
comb1:=comb1+1;+ B" W  n6 p6 v! ~  N% M
  end if;
  H, e0 ^0 B1 d% h+ @- Q' N  elsif comb1=money_in then
+ B4 g7 C7 J) G  o6 c- m     m_one<=comb1_a;# _# a8 q1 o4 d! W! c( x) X) E% I9 T
m_ten<=comb1_b;! }) B" ~: K1 C9 B9 W& B
m_hun<=comb1_c;2 b  r6 {/ c- f- }$ ?6 |
m_tho<=comb1_d;7 d- v0 i% h3 ]) |5 u  y" w
elsif comb1>money_in then
, H- l6 ~, ], E- a           comb1_a:="0000";3 x# W# H, p0 |. e1 z8 o
     comb1_b:="0000";5 _5 x# w# O3 a/ M, a' R
comb1_c:="0000";3 Q4 K$ Z0 P; [6 K3 S1 H% x7 P
     comb1_d:="0000";
3 C* k/ L) v8 Z% T! c+ ocomb1:=0;% r, f1 v1 c6 n! l
end if;4 J1 n2 R. s8 L1 e
end if;
9 W$ r8 Q4 K+ a; _# ~6 @6 iend process;: V* x( X6 G) z2 t- ?  w8 h
process(clk20mhz,distance_in)7 d4 Q! L1 a9 e$ O
      variable comb2:integer range 0 to 8000;
( `: A- K0 i, H4 Y( R& m+ kvariable comb2_a,comb2_b,comb2_c,comb2_d:std_logic_vector(3 downto 0);- J$ `3 p; C& r6 o8 X  t
begin
" J0 _* w5 b. X$ a  h" `if clk20mhz'event and clk20mhz='1'then2 O8 y* Y' ?+ d* U$ _9 v$ O8 g5 W
      if comb2<distance_in then) Z0 w  Y8 |# L  T+ ^) c, }
            if comb2_a=9 and comb2_b=9 and comb2_c=9 then
! w$ n1 F  ^: S+ u# c                 comb2_a:="0000";0 e( d+ v5 D1 }/ x7 y! n/ Y7 J1 @" H
          comb2_b:="0000";
6 }1 K1 m8 `' W3 P. m          comb2_c:="0000";2 J. Q6 E' F/ T. r% }5 _
    comb2_d:=comb2_d+1;6 Q* X, ]9 b- K% k& o) L# I0 [+ J
    comb2:=comb2+1;! Z. i: `- E$ B( G7 A
elsif comb2_a=9 and comb2_b=9 then
" Q1 l- Y& o1 j- _: U9 s/ W            comb2_a:="0000";, _: k* ^( E( p. `( {) G
       comb2_b:="0000";  k8 _; ~% v* Y1 _& T) A
    comb2_c:=comb2_c+1;
8 n2 `) L/ t9 p, E* Z4 f    comb2:=comb2+1;: m; C( v& [6 Z2 x  y; d& H
elsif comb2_a=9 then
( B! w& o  v9 H9 R; ^# r2 Y5 `            comb2_a:="0000";
! `' v  d9 I" `4 M, ^      comb2_b:=comb2_b+1;& ~+ T0 B( H* G5 z" ?& t
      comb2:=comb2+1;" V% n! y1 B8 _. I- K
else
  b5 y) C' V4 f! R9 \7 U               comb2_a:=comb2_a+1;7 U0 {' _$ o+ Q" |7 u% I
      comb2:=comb2+1;
  r! n) V" J! y! eend if;) u6 ]* i2 b+ O9 Y- Q8 g) s: ~
     elsif comb2=distance_in then
9 y1 `) n6 h1 f  o) Z8 i               d_one<=comb2_a;
1 t* q! s, t$ \$ B7 C         d_ten<=comb2_b;
6 y# Y7 T+ G" K  f' S) t9 S      d_hun<=comb2_c;( [- u- x# f7 @( I0 j
      d_tho<=comb2_d;, w" V! ]9 i5 t5 G9 q3 N
elsif comb2>distance_in then4 G, p; r: h8 V$ z* g$ R1 o' v
               comb2_a:="0000";
/ b: M8 @5 [: a        comb2_b:="0000";
& Q1 `9 q( m, c) ]6 l: Z6 L$ H* P8 ~        comb2_c:="0000";  h5 K7 `1 p6 e! H
        comb2_d:="0000";0 k' u& s5 Z7 Z$ v: l' s/ V7 X6 o( ]
        comb2:=0;
, `3 M( Y4 j: u  s2 T" D   end if;9 X7 ?7 r$ O; b$ ]
end if;+ W3 c( G7 Q$ ]1 j' K
end process;
# r/ v* A8 T: aprocess(clk1khz,m_one,m_ten,m_hun,m_tho,d_one,d_ten,d_hun,d_tho)/ v9 b0 j' M, S+ d! d
variable cnt:std_logic_vector(2downto 0);
* y) t7 W, H" ?  u8 Hbegin6 y" f# W0 [+ k# ~! {+ m; G" W
if clk1khz'event and clk1khz='1'then
' Y) J' k( g5 H% R" u      cnt:=cnt+1;  t0 Z' Q% ]: ^) j, \
end if;) Y0 n& h# P# [* h+ E3 p$ c! D5 n
case cnt is0 c3 K  }3 c# _8 @7 N9 d
      when"000"=>data<=m_one;dp<='0';scan<="00000001";, M2 w) ~7 U/ |
      when"001"=>data<=m_ten;dp<='0';scan<="00000010";4 N' }# j  ~: ?, @, q( \
      when"010"=>data<=m_hun;dp<='1';scan<="00000100";' y+ `  u* e$ _. x
      when"011"=>data<=m_tho;dp<='0';scan<="00001000";
5 F) w( L9 W5 |1 P, n0 c" c  when"100"=>data<=m_one;dp<='0';scan<="00010000";
' q' ~5 ~2 Z" C$ U" |/ c$ M- e      when"101"=>data<=m_ten;dp<='0';scan<="00100000";* ?' ~8 ^3 C* X( J1 ~
      when"110"=>data<=m_hun;dp<='1';scan<="01000000";
# N8 l: S1 ?  e; F      when"111"=>data<=m_tho;dp<='0';scan<="10000000";6 x! @; h9 g* F
end case;9 A9 f4 s! B. e, V, X
end process;- k0 P3 L; {+ w6 \# r, |* N
process(data)
3 Q6 G1 Z0 ~! U, G1 X0 `+ Mbegin+ P0 [& }8 T8 j6 V/ B: q
case data is
# x, y8 U7 m, y% d     when"0000"=>seg7<="1111110";
6 p' ]; k, L& A( p3 ]# _8 E9 w; H when"0001"=>seg7<="0110000";
/ K4 k" B4 m+ J' i3 b. X when"0010"=>seg7<="1101101";
' D9 i% f% z2 g when"0011"=>seg7<="1111001";
* D# l, Y$ T8 A2 Q! h! D4 t when"0100"=>seg7<="0110011";
' e. n& R6 y& Z+ b" ~" ~# e+ l# U# h when"0101"=>seg7<="1011011";5 a# b/ E* D" S
when"0110"=>seg7<="1011111";
' O. {+ |- Q7 T7 K* F  \# W' v! x6 Y2 I when"0111"=>seg7<="1110000";) c2 |* Z4 E7 K1 W6 c
when"1000"=>seg7<="1111111";2 N6 w# U4 n. a* e9 v. B! G+ R4 L
when"1001"=>seg7<="1111011";" ~+ I* J9 I0 s5 b5 r+ {3 f
when others=>seg7<="0000000";
0 T4 J: d1 G3 U. ]- y1 Nend case;
' U: G: o& D- {end process;- j/ W( n; ]" m$ a; r0 T0 e4 ~0 Z
end;
) a% T" X) k+ `. q7 E& `. s  L6 d6 L1 N. E1 ~6 H% w
) R" k6 y# e7 Q5 \9 [2 |, W" a' h
& w, x' |% ]- x$ d
, K5 e+ n/ ?6 o. m1 S+ I" C
第二个程序是这样的
回复 支持 反对

使用道具 举报

578

主题

936

帖子

4943

积分

四级会员

Rank: 4

积分
4943
发表于 2022-7-18 15:09:05 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复 支持 反对

使用道具 举报

579

主题

911

帖子

5007

积分

四级会员

Rank: 4

积分
5007
发表于 2022-7-18 15:09:35 | 显示全部楼层
第二个模块的仿真哪一步是上面这个图
回复 支持 反对

使用道具 举报

604

主题

947

帖子

5151

积分

四级会员

Rank: 4

积分
5151
发表于 2022-7-18 15:10:35 | 显示全部楼层
没人吗?
回复 支持 反对

使用道具 举报

657

主题

1025

帖子

5598

积分

四级会员

Rank: 4

积分
5598
发表于 2022-7-18 15:10:41 | 显示全部楼层
求大神帮我仿能真一波  并且把这两个模块的接线后的仿真也做一下谢谢了毕业设计现在就差这一步了下图是连接完成的仿真图
$ F. ]& F, F( A

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复 支持 反对

使用道具 举报

568

主题

922

帖子

4783

积分

四级会员

Rank: 4

积分
4783
发表于 2022-7-18 15:11:04 | 显示全部楼层
哦不是仿真图 是将两个模块的连接到一起的原理图
回复 支持 反对

使用道具 举报

598

主题

943

帖子

5138

积分

四级会员

Rank: 4

积分
5138
发表于 2022-7-18 15:11:10 | 显示全部楼层
自顶大神在哪里?
回复 支持 反对

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表