电子产业一站式赋能平台

PCB联盟网

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

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

[复制链接]

585

主题

910

帖子

4977

积分

四级会员

Rank: 4

积分
4977
发表于 2022-7-18 15:06:53 | 显示全部楼层 |阅读模式
library ieee;
+ ?- B* @. X1 Puse ieee.std_logic_1164.all;* B9 T2 v; ~8 l8 [3 f' b
use ieee.std_logic_unsigned.all;
% K  {# z7 }* s9 B* c( \3 Rentity taxi is' M1 O/ M. I- ~$ H# O' z( H
port(clk:in std_logic;5 j1 T; s. q8 `: Y
       start:in std_logic;
5 H& C1 g5 z  t1 j0 @       stop:in std_logic;6 g+ }# q+ ~; t, @" P
       pause:in std_logic;
  U, l( c$ e9 g( y. c. X       speedup:in std_logic_vector(1 downto 0);
% \& T2 `; L/ {  {- U       money:out integer range 0 to 8000;
- W6 A6 [3 l& r) i; Q+ U* N3 K       distance:out integer range 0 to 8000);7 m! `5 M. c" N9 O! H4 N3 `
end;; v* _# p$ c$ @4 A
architecture one of taxi is
  r1 X( g" H' o1 Gbegin; M% C% F8 q' D7 E; M+ P* a5 w
process(clk,start,stop,pause,speedup)
/ M, a, E6 q, J2 q8 s     variable money_reg,distance_reg:integer range 0 to 8000;
6 j' ~! b# W* Q# D( N) R     variable num:integer range 0 to 9;7 V* m# H# p/ n, @) V) @- Y
     variable dis:integer range 0 to 100;
5 X, s9 m; ?/ i     variable d:std_logic;
; W2 s4 ?. o9 E" D1 ^begin1 V& s1 i; j, n0 A4 O; l% Q
if stop='1'then
) f% l8 p% m# k2 y6 X* a      money_reg:=0;
: R2 v$ e$ y$ Z0 r. r+ e. P! B      distance_reg:=0;+ {, P" I# H4 U
      dis:=0;9 l! U, E7 [4 Q6 Q/ P; L
      num:=0;
* z% b- W9 a. Q6 |, b  k* selsif start='1'then; j; e# k! z% d/ _' W3 n
      money_reg:=600;
( U9 {! N$ j9 c      distance_reg:=0;
3 v5 g# r6 R& @% r, S/ S0 }, L      dis:=0;
! u" y6 C' s2 f6 y( M& k      num:=0;
1 O3 u2 s) g3 M3 r, ~2 [elsif clk'event and clk='1'then& H: O: b5 O+ A* `' t& n- W3 l
       if start='0'and speedup="00"and pause='0'  and stop='0'then' @7 [( g+ e# G" o/ l7 L
            if num=9 then
0 I) m  F# X5 d4 B& j7 I: q                 num:=0;" C: \9 `2 c# c0 D5 ], V: b, i
                 distance_reg:=distance_reg+1;& N* ?: ]4 s4 f( Z
                 dis:=dis+1;
) w8 s5 V. N7 R2 a6 W              else num:=num+1;
% j6 |9 j  y$ a, u              end if;
7 `3 w0 V  `& E& G% T/ ^; nelsif start='0'and speedup="01"and pause='0'and stop='0'then
: Z: d& a: a3 n/ h/ q$ ?   if num=9 then) p9 o# j0 P& \+ x. p
        num:=0;2 Z  ?2 ?% J" a  Q1 M
        distance_reg:=distance_reg+2;
* a0 Q  x! p5 M7 I        dis:=dis+2;
6 D, @* w# O; P9 {# l      else num:=num+1;
3 S5 N  J$ b$ w0 @      end if;; v' q# j5 R5 v9 \
elsif start='0'and speedup="10"and pause='0'and stop='0'then5 [4 L+ J$ s$ i6 o$ n/ i6 ?
    if num=9 then
+ f( n. K  N- }        num:=0;$ P% M/ x8 s" K  u
         distance_reg:=distance_reg+5;0 a4 w2 ~- o+ Z* o
         dis:=dis+5;
1 i1 h/ a6 V: q! ]1 H9 a' f! r    else num:=num+1;
; b: P/ a2 m8 m& n& `; F    end if;
- U& I$ Z- Z9 W3 ?8 w5 ~3 _elsif start='0'and speedup="11"and pause='0'and stop='0'then
/ J8 }; D$ b$ O5 g& X           distance_reg:=distance_reg+1;
5 c" z/ e# o+ U8 w/ H* \& w  C2 J          dis:=dis+1;
5 P, m' x7 X6 z$ R* Gend if;
/ v. }/ a1 k/ E$ }0 M3 _( Y3 Hif dis>=100then( \0 [' x. o9 O8 ^; @  U1 S
         d:='1';7 @0 }' n+ l: o: o; k+ Y
         dis:=0;, }! H6 X# P9 ~9 A( ^
      else d:='0';
0 ^/ Y/ l# l9 mend if;: `" K; s" b7 l0 Q
if distance_reg>=300 then
0 c8 Q" c( J, P5 p+ n$ [( \       if money_reg<2000and d='1'then( l- U8 k) f) @: ]% `6 w1 k
                money_reg:=money_reg+120;, P/ f1 q. K+ v& }8 E
       elsif money_reg>=2000 and d='1'then
9 f* y  C6 U* m4 Y, u8 q             money_reg:=money_reg+180;
8 j6 C% @; o* d  Q0 D8 T9 |4 J       end if;
4 X& ^5 v$ X+ T2 d    end if;
/ R( \- c# [% \3 rend if;0 u: a) S% ]& U5 B4 t$ @! R# P
    money<=money_reg;" u% g" `* U6 G# E& Z
    distance<=distance_reg;$ U' S* b( t8 J! G
end process;
9 q1 i0 U2 H: S2 a6 `$ Aend;( x! w- Z9 g+ F9 \8 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;
: @/ E  Q- |9 T5 n/ V) s$ n" huse ieee.std_logic_1164.all;
7 l& ?2 ~  v+ z& f, {% uuse ieee.std_logic_unsigned.all;
) o( l& V6 l1 T9 j* ]+ h. Q' Uentity decoder is$ Q$ w' J# y' p9 C0 F# [1 e
port(clk20mhz:in std_logic;
# M4 W* i* W0 o( D$ m      money_in:in integer range 0to 8000;
6 ?4 A+ s4 F6 E6 Q! q- A- {) c" Adistance_in:in integer range 0 to 8000;
$ D/ V+ d! b* r" U' kscan:out std_logic_vector(7 downto 0);6 U$ N+ }% N, p! \
seg7:out std_logic_vector(6 downto 0);
( ~, D. G" M3 }% f% adp:out std_logic);
, ]# k$ l4 w8 V' M( Z9 cend;
$ k2 W/ }3 D3 `8 marchitecture one of decoder is
* z% k, ]9 ]$ p0 ?. _6 j6 u signal clk1khz:std_logic;3 @. u, w$ n! A5 o
signal data:std_logic_vector(3 downto 0);
! P1 ^1 U8 @! ~- Q% [. o2 ~signal m_one,m_ten,m_hun,m_tho:std_logic_vector(3 downto 0 );
: X1 [3 ?4 q6 Xsignal d_one,d_ten,d_hun,d_tho:std_logic_vector(3 downto 0);5 H# A# c2 W$ v- B" G: p
begin
; J2 v* m: N4 @9 G, rprocess(clk20mhz)
- _; @& {% R$ Z! evariable count:integer range 0 to 9999;
) q2 F9 X8 |2 a* ^+ X- ?begin' M: Q- S2 h* g& n
if clk20mhz'event and clk20mhz='1'then0 H/ B% `# f/ e. y# V
   if count=9999 then clk1khz<=not clk1khz;count:=0;
+ Z4 D8 S% [- `; c3 eelse count:=count+1;
& q- P1 h1 k5 O. N6 X# Gend if;
+ R2 I1 M0 p" {% C& {end if;
+ U- n2 m7 C1 Q& D( qend process;
1 }  y, J1 Z4 D/ o) `: yprocess(clk20mhz,money_in)* D8 K9 ]; z$ `: g5 d+ [
     variable comb1:integer range 0 to 8000;
, }$ p( ^. E6 Y: W" S( Z& o variable comb1_a,comb1_b,comb1_c,comb1_d:std_logic_vector(3 downto 0);# ~* _( ^- v5 k) u
begin7 P7 j4 _! N  p: |' X3 i
if clk20mhz'event and clk20mhz='1'then% [5 p, n& Y% r6 P
      if comb1<money_in then3 g5 f; `  s* o8 I
     if comb1_a=9 and comb1_b=9 and comb1_c=9 then
. a0 X' `+ P$ _     comb1_a:="0000";% F# ^3 K: G& M7 X
comb1_b:="0000";
* ]- W" A6 w' a. j* s8 ~comb1_c:="0000";+ E2 h" k) n/ f7 n  A
comb1_d:=comb1_d+1;4 G1 j/ x1 V& f5 [  E; ^9 l
comb1:=comb1+1;
7 y/ W) }( T3 U7 a7 q7 R$ zelsif comb1_a=9 and comb1_b=9 then4 E. n& @3 u0 c% j3 m$ x
comb1_a:="0000";
" u' F+ ^/ ~6 m' w; @7 gcomb1_b:="0000";
, r2 y, z0 \/ _# E+ l, Ecomb1_c:=comb1_c+1;
$ X1 O% w5 ?( i# Jcomb1:=comb1+1;* b+ @+ k9 O# Z" B" Y
elsif comb1_a=9 then/ l% u+ v. f3 [: d7 k
      comb1_a:="0000";$ ?8 `) p/ G$ M/ u1 J
comb1_b:=comb1_b+1;+ w" ~* ^4 H4 N1 G/ L
comb1:=comb1+1;* k2 t. r; v  L% b% s
else+ T- A6 B- H: l# i; K
      comb1_a:=comb1_a+1;
4 e3 s2 [' s* D7 ^comb1:=comb1+1;
* d( X8 r1 M( \  F! b4 U  end if;* }4 G7 r. Q5 d3 t2 a
  elsif comb1=money_in then
2 V( O8 q6 r+ F     m_one<=comb1_a;
- g$ _6 @, {, k7 Om_ten<=comb1_b;) h; \' F, `* u, B/ \# D/ P- r
m_hun<=comb1_c;
- c* x4 s1 h& C2 Rm_tho<=comb1_d;
) b( h7 L  g8 Z/ z3 z# aelsif comb1>money_in then, }/ D% L0 R8 Y$ ~! w9 D7 T9 s
           comb1_a:="0000";
2 t7 p6 W1 {1 u/ w     comb1_b:="0000";
& D7 q+ r  M' e; E, _comb1_c:="0000";
: Z+ ~  M  C5 H  X' U     comb1_d:="0000";2 C( y+ v" D( l  Z- U5 y
comb1:=0;+ ~. m! r  L( ]+ C% A' u. b
end if;5 n( M+ t5 q( k- l1 x
end if;0 V; c: \' O' Q# `! h+ ?
end process;
" F2 S( w5 f8 ]: B! x  W. g/ Oprocess(clk20mhz,distance_in)9 k; f+ m: x+ T* m/ s
      variable comb2:integer range 0 to 8000;6 _: Z0 J9 f) _  I5 A5 r
variable comb2_a,comb2_b,comb2_c,comb2_d:std_logic_vector(3 downto 0);
+ f' R$ i' T, k. {0 g# Ebegin. h* L% Q+ `: v
if clk20mhz'event and clk20mhz='1'then1 B, \7 u- o7 X# I% N/ j: v6 S) e) w
      if comb2<distance_in then
9 J+ y  x8 e+ p% n- i  S' J            if comb2_a=9 and comb2_b=9 and comb2_c=9 then
4 }! t( k1 a4 |( z0 F$ i2 X                 comb2_a:="0000";
3 {; t. P- U! v          comb2_b:="0000";' m7 D( {6 v7 B" T
          comb2_c:="0000";, s5 x# ]$ p$ q6 C  q0 y* v
    comb2_d:=comb2_d+1;
5 @. R- w- y1 y4 N. }& X* Z    comb2:=comb2+1;. l. |& _# B3 P* I! Q' g1 }# F# N
elsif comb2_a=9 and comb2_b=9 then
  t0 J  c, J$ f6 w0 H            comb2_a:="0000";: o8 @( W! M8 \" I
       comb2_b:="0000";$ E( ?7 {# l, W# ]* T
    comb2_c:=comb2_c+1;
+ Q0 r5 o  X1 d+ \; }0 j    comb2:=comb2+1;
0 h$ {: C6 T' B) K# h' C4 oelsif comb2_a=9 then: Y. c( c5 X6 R% g6 c. m
            comb2_a:="0000";
5 F, Q# c4 J- v6 r8 M      comb2_b:=comb2_b+1;
/ Q* E. ~& ?% Q6 c( R6 S      comb2:=comb2+1;; i, J* x3 {& t& ?8 D( d. t) c0 |
else
( {; w' y/ y$ m5 d+ G: B8 D               comb2_a:=comb2_a+1;9 O8 K5 p8 d$ s+ W
      comb2:=comb2+1;) S6 ^2 _: X& h
end if;
8 U3 `. h! O( Z     elsif comb2=distance_in then. b7 Z  u3 s& @8 w* d
               d_one<=comb2_a;
( n' P. L& @8 E# p0 [" U3 n         d_ten<=comb2_b;. M) s7 v! @( H
      d_hun<=comb2_c;
; ^& y$ m! ]& I' M* {; P& }      d_tho<=comb2_d;
5 ]0 m! q# L! w$ a$ uelsif comb2>distance_in then; ?6 ?, J: Y& l
               comb2_a:="0000";7 c, j& s2 o. e+ H" A
        comb2_b:="0000";3 }' [' L4 L6 c3 }
        comb2_c:="0000";$ x2 w2 |4 V% p8 X6 t. a: X
        comb2_d:="0000";) H9 c* {3 A$ u0 w% ?2 a
        comb2:=0;# {+ q) ^- r* H# S: O$ ?
   end if;
' {: ~* T1 f; T+ C* K8 t& Dend if;
  d, e) @8 E! _2 ^9 \end process;. D' T; m/ }2 p7 A
process(clk1khz,m_one,m_ten,m_hun,m_tho,d_one,d_ten,d_hun,d_tho)
9 i5 Y# {- `" _; Ovariable cnt:std_logic_vector(2downto 0);
$ n$ |, ^1 n; H, Y, Hbegin; j' U) H9 L* a$ W6 f3 Q, T
if clk1khz'event and clk1khz='1'then
. D* ~$ s# b+ K+ f. {( k      cnt:=cnt+1;+ X" k$ `( [4 M  C* e& ~4 u
end if;
* h! e( |% J# _4 [' q+ R  Q6 Y8 zcase cnt is( B$ P3 d+ y" F5 }4 g3 g) ~
      when"000"=>data<=m_one;dp<='0';scan<="00000001";* G" U4 b% V$ s$ s, N  s
      when"001"=>data<=m_ten;dp<='0';scan<="00000010";
& q% C% z0 D0 A3 A      when"010"=>data<=m_hun;dp<='1';scan<="00000100";" k1 c; |9 \! _. O/ K. X
      when"011"=>data<=m_tho;dp<='0';scan<="00001000";3 x3 q9 v8 ~+ R; ?& n
  when"100"=>data<=m_one;dp<='0';scan<="00010000";
# I, U4 `# a3 [& ^8 G  T3 M# h      when"101"=>data<=m_ten;dp<='0';scan<="00100000";! t" g" [% N6 i
      when"110"=>data<=m_hun;dp<='1';scan<="01000000";
9 N. K7 _/ [2 l1 c+ N      when"111"=>data<=m_tho;dp<='0';scan<="10000000";
& x/ Q) s" {( b/ `* |end case;
6 J6 H8 N+ V3 L: Z- d8 Zend process;
5 b0 ~& m% D  Y; y5 H, I* Q8 o, Eprocess(data)
) S! @. t4 Q& C* _9 ?; n5 Dbegin
4 Q" ~6 [+ r9 |+ e- ]case data is2 {& f6 V8 a1 D- F6 g5 a- Q
     when"0000"=>seg7<="1111110";  X* `; J* e. m* n/ ~4 }; g
when"0001"=>seg7<="0110000";# j& a/ k3 Y. E! r
when"0010"=>seg7<="1101101";% f$ p% Z2 [+ f
when"0011"=>seg7<="1111001";9 t( W4 Z1 M. t6 t2 w* E
when"0100"=>seg7<="0110011";7 T/ I0 W# ]: d
when"0101"=>seg7<="1011011";4 {/ T& h# }2 {" v
when"0110"=>seg7<="1011111";; g9 ^5 |" m! E4 X# E
when"0111"=>seg7<="1110000";
8 _% o  ]: V* V when"1000"=>seg7<="1111111";9 p  I) ]/ y% g2 b6 B
when"1001"=>seg7<="1111011";& C9 g, J9 e3 c8 f- }: \, c
when others=>seg7<="0000000";5 m& x  U- X( ?. J: ]7 q  y
end case;! A1 x' i  H5 r& }( x
end process;
$ G! g* r' h- X5 |& l8 zend;
! ~1 o; }6 H4 T& m8 d' _3 c! U2 T# Z) X  s; w

: F1 x7 L5 s* E8 }# w5 q+ E- b( b

' _8 v2 n$ r- H第二个程序是这样的
回复 支持 反对

使用道具 举报

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 | 显示全部楼层
求大神帮我仿能真一波  并且把这两个模块的接线后的仿真也做一下谢谢了毕业设计现在就差这一步了下图是连接完成的仿真图+ p- k: S8 v  g$ S) f

本帖子中包含更多资源

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

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