본문내용
b=4\'b0000;
end
endmodule
#HW3
Complete the 4to1 mux and simulate it using testbench. Report must include your own explanation.
→ Input : 4bit [3:0]D, 2bit [1:0]S Output: 1bit Y
module MUX4to1(
input [3:0]d,
input [1:0]s,
output y
);
assign
y = d[0]&(~s[1]&~s[0])|
d[1]&(~s[1]& s[0])|
d[2]&( s[1]&~s[0])|
d[3]&( s[1]& s[0]);
endmodule
위 과제는 4 to 1 MUX를 설계하는 것인데, 100ns에서 5ns마다 s값이 00,01,10,11순서로 바뀌게 되며 이는 always구문에
의해서 위와 같이 된다. 위의 출력되는 과정을 간단하게 100ns에서 180ns까지의 변화를 통해서 설명하면 100ns에서 120ns
의 경우에는 입력되는 4bit값이 1001이며 이는 각각 d3,d2,d1,d0의 값이며, s가 00일 때는 d0값이 출력되고 01일때는 d1,
10일 때는 d2, 11일 때는 d3의 값이 출력이 된다. 즉, 출력되는 y는 1001의 오른쪽 수부터 출력이 된다. 120ns부터 140ns
의 경우를 살펴보면 d의 값은 1110인데 위에 설명한 방법대로 y의 값이 0111로 출력이 되는데 위의 시뮬레이션 그래프를 보
면 확인할 수 있다. 140ns에서 160ns의 경우 d는 1101이므로 출력되는 y값은 1011이 되며, 160ns에서 180ns인 경우에는
d가 1100이므로 y는 0011값이 순서대로 5ns마다 출력이 된다.
<<테스트벤치 과제 3번>>
module tb_mux;
// Inputs
reg [3:0] d;
reg [1:0] s;
// Outputs
wire y;
// Instantiate the Unit Under Test (UUT)
MUX4to1 uut (
.d(d),
.s(s),
.y(y)
);
initial begin
// Initialize Inputs
d = 0;
s = 0;
// Wait 100 ns for global reset to finish
#100;
// Add stimulus here
d=4\'b1001;
#20 d=4\'b1110;
end
always
begin
#5 s= s+1;
end
endmodule
end
endmodule
#HW3
Complete the 4to1 mux and simulate it using testbench. Report must include your own explanation.
→ Input : 4bit [3:0]D, 2bit [1:0]S Output: 1bit Y
module MUX4to1(
input [3:0]d,
input [1:0]s,
output y
);
assign
y = d[0]&(~s[1]&~s[0])|
d[1]&(~s[1]& s[0])|
d[2]&( s[1]&~s[0])|
d[3]&( s[1]& s[0]);
endmodule
위 과제는 4 to 1 MUX를 설계하는 것인데, 100ns에서 5ns마다 s값이 00,01,10,11순서로 바뀌게 되며 이는 always구문에
의해서 위와 같이 된다. 위의 출력되는 과정을 간단하게 100ns에서 180ns까지의 변화를 통해서 설명하면 100ns에서 120ns
의 경우에는 입력되는 4bit값이 1001이며 이는 각각 d3,d2,d1,d0의 값이며, s가 00일 때는 d0값이 출력되고 01일때는 d1,
10일 때는 d2, 11일 때는 d3의 값이 출력이 된다. 즉, 출력되는 y는 1001의 오른쪽 수부터 출력이 된다. 120ns부터 140ns
의 경우를 살펴보면 d의 값은 1110인데 위에 설명한 방법대로 y의 값이 0111로 출력이 되는데 위의 시뮬레이션 그래프를 보
면 확인할 수 있다. 140ns에서 160ns의 경우 d는 1101이므로 출력되는 y값은 1011이 되며, 160ns에서 180ns인 경우에는
d가 1100이므로 y는 0011값이 순서대로 5ns마다 출력이 된다.
<<테스트벤치 과제 3번>>
module tb_mux;
// Inputs
reg [3:0] d;
reg [1:0] s;
// Outputs
wire y;
// Instantiate the Unit Under Test (UUT)
MUX4to1 uut (
.d(d),
.s(s),
.y(y)
);
initial begin
// Initialize Inputs
d = 0;
s = 0;
// Wait 100 ns for global reset to finish
#100;
// Add stimulus here
d=4\'b1001;
#20 d=4\'b1110;
end
always
begin
#5 s= s+1;
end
endmodule
키워드
추천자료
가 산기(Adder) 조합 논리회로 병렬 가산기 코드 변환(Code Conversion)
[논리회로]부울대수의공리
7 세그먼트 논리회로 구현
[A+ 결과] 논리회로 실험 멀티플렉서와 디멀티플렉서 (Multiplexer & Demultiplexer)실험...
[A+] 논리회로 실험 . D/A & A/D 컴버터 (CONVERTER) DAC & ADC 실험 사진 및 파...
숭실대 2-1학기 논리회로실험 예비리포트 모음
TTL게이트와 PLD를 이용한 논리회로 실험 [3장 결과]
[논리회로실험] Basic Gates 결과 레포트
BCD - 7세그먼트를 이해&분석 한다. - 논리회로 설계
[실험] (예비) 4_논리 게이트 및 부울 함수의 구현 (AND, OR, NOT, NAND, NOR, XOR, XNOR의 ...
[ 대학레포트 ]논리회로 간소화 , BCD 무효코드 검출기에 대한 진리표, 카르노 맵을 이용한 ...
[ 대학레포트 ]논리회로 간소화 - BCD 무효코드검출기에 대한 진리표, 카르노맵을 이용한 표...
[전자공학 실험] 래치와 플립플롭 : SR 래치와 D 래치에 대한 논리회로를 이해하고, 각 래치...
소개글