Files
temp/3.md
RadinPirouz 2195efcd28 3
2026-05-19 00:09:14 +03:30

393 lines
5.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## ۳-۲
الف)
`F(x,y,z)=Σ(2,3,6,7)=y`
ب)
`F(A,B,C,D)=Σ(4,6,7,15)=A'BD' + BCD`
پ)
`F(A,B,C,D)=Σ(3,7,11,13,14,15)=CD + ABC + ABD`
ت)
`F(w,x,y,z)=Σ(2,3,12,13,14,15)=wx + w'x'y`
---
## ۳-۴
الف)
`F(w,x,y,z)=xz' + wxy + w'y'z`
ب)
`F(A,B,C,D)=A'C' + A'B'D' + A'BD + ACD`
پ)
`F(w,x,y,z)=wx + x'y`
ت)
`F(A,B,C,D)=BD + A'D' + B'D'`
---
## ۳-۶
الف)
`A'B'C'D' + AC'D' + B'CD' + A'BCD + BC'D`
ساده‌شده:
`F = B'D' + ABC' + A'BD`
ب)
`x'z + w'xy' + w(x'y + xy')`
ساده‌شده:
`F = xy' + x'z + wx'y`
---
## ۳-۸
الف)
`xy + yz + xy'z = Σ(3,5,6,7)`
ب)
`C'D + ABC' + ABD' + A'B'D = Σ(1,3,5,9,12,13,14)`
پ)
`wxy + x'z' + w'xz = Σ(0,2,5,7,8,10,14,15)`
---
## ۳-۱۰
الف)
موجبات اصلی اساسی:
`x'z' , xz`
یک جواب مینیمم:
`F = x'z' + xz + w'z'`
یا به‌صورت دیگر:
`F = x'z' + xz + w'x`
ب)
موجبات اصلی اساسی:
`B'D' , A'BD , AC`
جواب مینیمم:
`F = B'D' + A'BD + AC + B'C`
پ)
موجبات اصلی اساسی:
`BC' , AC`
جواب مینیمم:
`F = BC' + AC + A'B'D`
---
## ۳-۱۲
الف)
`F(w,x,y,z)=Σ(0,2,5,6,7,8,10)`
صورت ضرب حاصل‌جمع‌ها:
`F = (x + z')(w' + x')(y + z + x')`
ب)
`F(A,B,C,D)=Π(1,3,5,7,13,15)`
صورت ساده ضرب حاصل‌جمع‌ها:
`F = (A + D')(B' + D')`
---
## ۳-۱۴
تابع:
`F = A'B'D' + AB'CD' + A'BD + ABC'D`
سه نمایش با ۸ لیترال یا کمتر:
1.
`F = B'D'(A' + C) + BD(A' + C')`
2.
`F = (B ⊕ D)'(A' + B ⊕ C)`
3.
`F = (B ⊕ D)'(A' + C ⊕ D)`
---
## ۳-۱۶
الف)
`AB' + ABD + ABD' + A'C'D' + A'BC'`
ساده‌شده:
`F = A + BC' + C'D'`
پیاده‌سازی NAND دوطبقه:
`F = [A' · (BC')' · (C'D')']'`
ب)
`BD + BCD' + AB'C'D'`
ساده‌شده:
`F = BC + BD + AB'C'D'`
پیاده‌سازی NAND دوطبقه:
`F = [(BC)' · (BD)' · (AB'C'D')']'`
---
## ۳-۱۸
عبارت:
`F = (AB + A'B')(CD' + C'D)`
با NAND دوورودی:
```text
n1 = NAND(A,B)
n2 = NAND(A,n1)
n3 = NAND(B,n1)
xorAB = NAND(n2,n3)
xnorAB = NAND(xorAB,xorAB)
n4 = NAND(C,D)
n5 = NAND(C,n4)
n6 = NAND(D,n4)
xorCD = NAND(n5,n6)
n7 = NAND(xnorAB,xorCD)
F = NAND(n7,n7)
```
---
## ۳-۲۰
عبارت:
`F = (AB' + CD')E + BC(A+B)`
چون:
`BC(A+B)=BC`
پس:
`F = AB'E + CD'E + BC`
مدار NAND چندطبقه:
```text
B' = NAND(B,B)
D' = NAND(D,D)
p1 = NAND(A,B',E) => (AB'E)'
p2 = NAND(C,D',E) => (CD'E)'
p3 = NAND(B,C) => (BC)'
F = NAND(p1,p2,p3)
```
---
## ۳-۲۲
این سؤال به «شکل ۴-۴» ارجاع داده، ولی شکل ۴-۴ داخل فایل ارسالی نیست؛ بنابراین مدار دقیق قابل تبدیل نیست. روش کلی تبدیل به NAND این است:
```text
AND → NAND + معکوس‌کننده
OR → NAND با ورودی‌های معکوس طبق دمورگان
NOT → NAND با دو ورودی مشترک
```
اگر تصویر شکل ۴-۴ را بفرستی، همین سؤال را هم دقیق رسم می‌کنم.
---
## ۳-۲۴
`F(A,B,C,D)=Σ(0,1,2,3,4,8,9,12)`
ساده‌شده:
`F = A'B' + B'C' + C'D'`
همچنین:
`F' = AC + BC + BD`
الف) NAND-AND:
`F = (AC)'(BC)'(BD)'`
ب) AND-NOR:
`F = (AC + BC + BD)'`
پ) OR-NAND:
`F = [(A+B)(B+C)(C+D)]'`
ت) NOR-OR:
`F = (A+B)' + (B+C)' + (C+D)'`
---
## ۳-۲۶
داده‌ها:
`f = wxy' + y'z + w'yz' + x'yz'`
`g = (w+x+y'+z')(x'+y'+z)(w'+y+z')`
حاصل ساده‌ی `F = fg`:
`F = x'yz' + w'y'z + wxy'z'`
---
## ۳-۲۸
برای مولد توازن فرد سه‌بیتی با ورودی‌های `A,B,C`، بیت توازن فرد باید کل تعداد ۱ها را فرد کند:
`P_odd = (A ⊕ B ⊕ C)'`
برای چک‌کننده توازن فرد چهار‌بیتی با بیت توازن `P`:
خروجی خطا:
`Error = (A ⊕ B ⊕ C ⊕ P)'`
یعنی اگر کل تعداد ۱ها زوج شود، خطا برابر ۱ می‌شود.
---
## ۳-۳۰
عبارت:
`F = AB'CD' + A'BCD' + AB'C'D + A'BC'D`
گروه‌بندی:
`F = (A ⊕ B)(C ⊕ D)`
پس مدار فقط با XOR و AND:
```text
X1 = A ⊕ B
X2 = C ⊕ D
F = X1 · X2
```
---
## ۳-۳۲
مدار XOR شکل ۳-۲۲(الف) را به صورت رایج در نظر می‌گیریم:
`F = xy' + x'y`
تأخیرها:
NOT = 10ns، AND = 20ns، OR = 30ns
ورودی از `xy=00` به `xy=01` می‌رود؛ یعنی `x=0` ثابت است و `y:0→1`.
```text
x' همیشه 1
y' در t=10ns از 1 به 0 می‌رود
xy' همیشه 0
x'y در t=20ns از 0 به 1 می‌رود
F در t=50ns از 0 به 1 می‌رود
```
جدول زمانی:
| بازه زمانی | x' | y' | xy' | x'y | F |
| ----------- | -: | -: | --: | --: | -: |
| 0 تا 10ns | 1 | 1 | 0 | 0 | 0 |
| 10 تا 20ns | 1 | 0 | 0 | 0 | 0 |
| 20 تا 50ns | 1 | 0 | 0 | 1 | 0 |
| بعد از 50ns | 1 | 0 | 0 | 1 | 1 |
Verilog با تأخیر:
```verilog
module xor_delay(input x, y, output F);
wire xn, yn, a, b;
not #10 (xn, x);
not #10 (yn, y);
and #20 (a, x, yn);
and #20 (b, xn, y);
or #30 (F, a, b);
endmodule
```
تست‌بنچ ساده:
```verilog
module tb;
reg x, y;
wire F;
xor_delay uut(x, y, F);
initial begin
x = 0; y = 0;
#20 y = 1;
#100 $finish;
end
endmodule
```
---
## ۳-۳۴
توصیف HDL با continuous assignment:
```verilog
module circuit_334(input A, B, C, D, output x, y, z);
assign x = A & ((C & D) | B) | (B & ~C);
assign y = ((A & ~B) | (~A & B)) & (C | ~D);
assign z = ~((A | B) & (~C | (~D & B)));
endmodule
```
---
## ۳-۳۶
کد HDL داده‌شده معادل این روابط است:
```text
a = A'
d = D'
x = B C D'
y = A' C
z = y + A
w = z B
F = x + w
```
ساده‌سازی:
`z = A + A'C = A + C`
`w = B(A+C)`
`F = BCD' + B(A+C)`
چون `BC`، جمله `BCD'` را پوشش می‌دهد:
`F = AB + BC = B(A+C)`
پس مدار نهایی ساده‌شده:
```text
A ----\
OR ----\
C ----/ AND ---- F
/
B -----------/
```