【FPGA - 类型题(二)】杂类

一、给固定器件,组功能电路

1.1 如果一个标准单元库只有三个cell:2输入mux(o = s ?a :b;),TIEH(输出常数1),TIEL(输出常数0),如何实现以下功能?

  1. 反相器inv
  2. 缓冲器buffer
  3. 两输入与门and2
  4. 两输入或门or2
  5. 四输入的mux mux4
  6. 一位全加器 fa

思路:因为都是组合逻辑电路,先写出逻辑表达式 && 真值表;然后根据真值表,使用选择器实现即可:

1.1.1 反相器

a. 逻辑表达式: F = A ‾ F=\overline {A} F=A
b. 真值表:

输入A输出F
01
10

c. 实现:assign o_dout = i_din ? TIEL : TIEH;

1.1.2 缓冲器

assign o_dout = i_din ? TIEH : TIEL;

1.1.3 两输入与门

assign o_dout = i_a ? i_b: TIEL;

1.1.4 两输入或门

assign o_dout = i_a ? i_b: TIEL;

1.1.5 四输入MUX

  • 在这里插入图片描述
    b. 真值表:
控制1控制2选择输出的源
A0A1Y
00D0
01D1
10D2
11D3

c. 实现:assign o_dout = A0 ? (A1 ? D3 : D2) : (A1 ? D1 : D0) ;

1.1.6 1-BIT全加器

a. 逻辑表达式:
S i = A i ⊕ B i ⊕ C i − 1 Si=Ai \oplus Bi \oplus C_i-1 Si=AiBiCi1
C = A i ⋅ B i + ( A i ⊕ B i ) ⋅ C i − 1 C= Ai \cdot Bi + (Ai \oplus Bi ) \cdot C_i-1 C=AiBi+(AiBi)Ci1

根据前面的电路,就差异或门就可以实现逻辑表达式了,故可以跳过真值表。
异或门实现如下:
a. 逻辑表达式: F = A ‾ B + A B ‾ F=\overline {A}B + A\overline {B} F=AB+AB
b. 真值表:

AiBiF
000
011
101
110

c. 实现:assign o_dout1 = Ai ? (Bi ? TIEL : TIEH) : (Bi ? TIEH : TIEL);

那么可知:
Si 等于 o_dout1 和 Ci-1 之间的异或了,故:

Si = out1 ? (Ci-1 ? TIEL:TIEH) : (Ci-1 ? TIEH:TIEL)
   = (Ai ? (Bi ? TIEL:TIEH) : (Bi ? TIEH:TIEL)) ? (Ci-1 ? TIEL:TIEH) : (Ci-1 ? TIEH:TIEL)

最后就是进位Ci了:

out1为Ai与Bi:
 
out1 = Ai ? Bi : TIEL;
 
out2为:Ai与Bi的异或:
 
out2 = Ai ? (Bi ? TIEL:TIEH) : (Bi ? TIEH:TIEL)
 
out3为Ci-1与out2 :
 
out3 = Ci-1 ? out2 : TIEL;
 
out4 为out1或out3,也就是Ci:
 
out4 = out1 ? TIEH:out3
 
分别代入:
 
Ci = (Ai ? Bi : TIEL)? TIEH : (Ci-1 ? ( Ai ? (Bi ? TIEL:TIEH) : (Bi ? TIEH:TIEL)) : TIEL)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值