2017-11-12 2 views
0

아래 논리를 구현하는 게이트 레벨 조합 회로를 설계하고 싶습니다. Adder를 사용하지 않고도 가능합니까? 인버터 (4), (1) 전 가산기 1 멀티플렉서 - 조합 회로 : 선택 라인이 높을 때만 2s 보완

... 
input wire [3:0] in, 
input wire  sel, 
output wire [3:0] out 
... 

assign out = ({4{sel}} & (~in + 1)) | ({4{~sel}} & in); 

상기 Verilog 코드는

으로 실현 될 것이다. 더 이상 최적화 할 수 있습니까?

아이디어는 sel을 2의 보수 논리에 통합하고 더하기 회로보다 더 적은 수의 게이트를 소비하는 게이트 회로를 만드는 것입니다. 그것은 정말로 가능합니까?

+0

설명은 어떤 언어입니까? 올바른 태그 (예 : 'verilog' 또는'vhdl' 또는 유사)를 포함하도록 질문을 수정하십시오. 그리고 만약 MUX없이 이것을하고 싶다면 아마 그 태그를 제거해야만 할 것입니다. –

+0

지적 해 주셔서 감사합니다. 나는 그 질문을 편집했다. – ashishdevre

+0

16- 입력 LUT를 사용하여 2의 칭찬 변환을 할 수 있습니다. 나는 그것과 4b 가산기 사이의 게이트 차이를보기는하지만 궁금 할 것이다. – ajcrm125

답변

0

카르노 맵을 사용하여 (~ in + 1) 항만을 푸십시오. 당신은 K-맵을 설정하고 시간

// Input        Result 
// A B C D  --> ~{A B C D} --> ~{A B C D}+1 
// 0 0 0 0   1 1 1 1   0 0 0 0 
// 0 0 0 1   1 1 1 0   1 1 1 1 
// 0 0 1 0   1 1 0 1   1 1 1 0 
// 0 0 1 1   1 1 0 0   1 1 0 1 
// 0 1 0 0   1 0 1 1   1 1 0 0 
// 0 1 0 1   1 0 1 0   1 0 1 1 

에서 결과의 하나의 비트에 대한 해결 있다면 ... 난 당신이지도의 나머지 부분을 작성할 수 있습니다 ...하지만 몇 가지 팝업 시작 아웃.

결과 비트 D는 항상 입력 D 결과 비트 C가 입력 C XOR 입력 D

당신이 좀 더 K지도를 할 경우, 당신은 아마 논리적 표현을 찾을 수에게 것으로 보인다 과 동일 결과 비트 A 및 B에 대한