|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
用选择器的思想来实现总线:
1 i, E4 V& R5 ]3 ?0 ], u$ j( P7 Y3 p1 N
0 K+ m# N% \3 s* Q2 |总线从宏观上看是“多写多读”的,但是从微观上来看是“一写多读”,因为系统中的各个部件只能分时使用总线,而无法同时使用。也就是在某一固定时刻,总线是“一写多读”的,只不过通过一写控制电路,我们貌似可以在不同时刻为总线分配不同的驱动源,以达到宏观上的“多写多读”。4 D7 y- j; ~5 D' w- _
/ E: @! D" g# A: {4 m: R
下面用FPGA来简单地实现总线:
! W! n- O2 ~3 T8 w3 f; R& e: I% ?; I" [0 N" R6 \% p! A _- C
利用多路选择器的选通特性,可以实现总线的功能,这也是FPGA芯片内部设计总线时最常用的方法,因为FPGA芯片内部有些非常丰富的MUX资源。
- @ @8 B, t" `6 o+ u3 f3 Z- F* h* h" r4 k* C
原理就是通过MUX的选通特性,通过改变选通信号的值来改变写入总线数据的来源。
5 a$ V9 j9 q, h4 a9 g2 _
0 U4 |" P# e% L! M; s- |: H3 N下面给出示意代码(Verilog HDL):
: m- \8 v: j7 b. G8 Y% I
: `0 d: |2 x9 `' w' _功能代码主要分为三个部分:
$ I9 c' I6 N! o0 o0 A) J
* t3 u+ b0 }" u4 E& @" W, O1、选择器控制信号产生部分,采用抢占式优先级译码器(【 FPGA 】抢占式优先级译码器电路)的思路,根据四个外围器件的请求信号产生多路选择器的选择控制信号。
4 z% N8 [; }' }: k- {8 K0 V5 m. _7 }7 @/ K7 D: u. p
2、写总线部分,即将选通通道的数据写到总线上。
5 Z8 T [- U; n/ c/ {, f
2 _. i4 C- v( d6 f3、读总线部分,各个外围器件根据自己的情况将总线数据读入器件内部进行运算和处理。 V! t; A" ~* i0 Z- u. i* o
7 `$ q% k' _! F. O' c
r5 S6 K" B3 S7 y; ]$ h5 `; h7 K
, g5 K5 Z7 K' ~) s( S2 I5 ^! e1 {+ y3 _ t- {
|
|