회원가입 ID/PW 찾기
AA

전가산기를 아래와 같이 설계해봤습니다. 더 간단하게도 되지만 그냥 Behavioral로 이렇게 해봤어요

 

마치 C프로그램 짜듯이

 

그런데 원하는 출력값이 나오질 않습니다.

 

코드 설명을 잠깐 드리자면

 

a,b,ci 순서로 하나씩 확인해가면서 하나라도 1이 있으면 그 개수를 temp에 저장합니다.

 

temp가 2개 이상이면 carry가 발생하니 c=1 주고요(반대는 생략)

 

temp가 짝수이면 s=0 줍니다. (반대는 생략)

 

사용한 signal은 a,b:input ci:carry input c:carry s:sum 입니다.

 

k는 그냥 a,b,ci를 저장하고 for문으로 다루기위한 bit벡터입니다.

 

 

이렇게 해놓고

 

첨부한 파일을 보시면 a=0 b=0 ci=1일 때, s=1이어야 하는데

  

안맞는걸 확인하실 수 있을겁니다.

 

혹시나 해서 temp signal을 그냥 2만 대입해봤더니 이상하게

 

c, s에서 변화가 생깁니다. 아래 코드만 보면 c, s는 temp 값에의해 결정되니깐

 

변화가 없어야 정상인 것 같은데요.

 

원인이 무엇인지 도통 감이 잡히질 않습니다.

 

rem 연산 때문일까요??

 

 

 

 

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
use IEEE.NUMERIC_STD.ALL;


entity Fulladder is
    Port ( a : in  bit;
           b : in  bit;
           ci : in  bit;
           s : out  bit;               ---- sum
           c : out  bit;              ----- carry
    
end Fulladder;

architecture Behavioral of Fulladder is

signal k : bit_vector (1 to 3);

begin
 
 process(a,b,ci)
 variable temp : integer;
 begin
  temp := 0;  --- temp 변수 초기화 및 for문 조작을 위해 벡터에 a,b,ci 입력
  k(1) <= a;
  k(2) <= b;
  k(3) <= ci;

 

  for i in 1 to 3 loop                                        --- bit a, b, ci 중에 논리값이 1인 개수를 샌다.
   if (k(i)='1') then
    temp := temp + 1;    --- 개수를 temp에 저장
   end if;
  end loop;
  
  if ((temp rem 2)=0) then                                --- 짝수개이면 s=0 홀수면 s=1 : sum 결정
   s <= '0';
  else
   s <= '1';
  end if;
  
  if (temp < 2) then                                      --- 2개이상이면 c=1 1개이하이면 c=0 : carry 결정
   c <= '0';
                 else
   c <= '1';
                 end if;
 end process;

end Behavioral;

 

 

댓글 0

하드웨어 설계 및 개발에 대하여 개발자들이 자유롭게 토론하는 공간입니다.
- Q&A, 자유주재 토론, 관련 정보 공유
- 분야 : 마이크로프로세서 응용, 전기/전자(아날로그/디지털) 회로 설계, C/C++ 프로그래밍, 펌웨어,
         PCB Artwork, 트러블슈팅 등 하드웨어 설계에 관한 전반인 내용
※ 게시글에 맞는 분류를 선택하여 글을 작성해 주시면 쾌적한 사이트 운영에 많은 도움이 됩니다.
※ 하드웨어 인사이트는 회원들간의 거래정보를 게재할 뿐이지, 그 어떤 책임과 의무도 가지지 않습니다.

search
번호 분류 제목 글쓴이 조회 수 날짜
892 마이크로프로세서 HOTAVR책소개좀 부탁드립니다ㅠ1 약곰탱이 1394 2011.06.02
891 펌웨어 & 코딩언어 HOTC언어랑 matlab의 차이?1 약곰탱이 3534 2011.06.02
890 마이크로프로세서 HOTPIC로 컨트롤 보드는 하나 만들려고 하는데 조언 부탁드립니다.1 피곤한동이 2086 2011.06.01
889 마이크로프로세서 HOTcds 센서에 대해 질문있습니다ㅠ1 rjmans 2163 2011.05.29
888 마이크로프로세서 HOT컴퓨터 keyboard를 통해 led제어1 wncks016 1625 2011.05.27
887 마이크로프로세서 HOT89c51ed2와 ds1302칩 이용한 LCD시계 프로그램 질문입니다 ㅠㅠ1 천악 2790 2011.05.27
886 마이크로프로세서 HOT8051홀짝 소스 질문입니ㅏ1 라인걸어서 1449 2011.05.25
885 마이크로프로세서 HOTavr회로관련 질문요~2 전자공학고고 19713 2011.05.20
884 마이크로프로세서 HOT[atmega128] OCR2 에서 이중버퍼구조 질문이요~ FLOW 2599 2011.05.18
883 마이크로프로세서 HOTPIC24FJ64 랑 memory 간의 연결 회로도??? 흠냐 2114 2011.05.15
882 마이크로프로세서 HOT조도 센서를 이용하여 LED 화면 밝기를 조절하는 방법을 모르겠네요 ..2 karinluna 3347 2011.05.14
881 마이크로프로세서 HOT비트맨 소스에 관한질문 얌전히있을래 2184 2011.05.13
880 마이크로프로세서 HOTAVR ATMEGA128 서적 질문...1 ya-han 2582 2011.04.25
879 마이크로프로세서 HOTATmega2560에 대한 참고할 만한 소스가 아쉽네요. 제넥슨 2441 2011.04.25
878 마이크로프로세서 HOTKEIL 공부하는 학생입니다. LCALL 질문 입니다.1 dodream 1823 2011.04.14
877 마이크로프로세서 HOT주파수 생성에 관한 질문입니다.3 담보트 18143 2011.04.12
876 마이크로프로세서 HOTAVR에서 TXT파일을 읽어올 수 있나요? ceh1990 3016 2011.04.05
875 마이크로프로세서 HOTatmega128 4x4 키 매트릭스 질문요 배우고싶다 3126 2011.04.05
874 마이크로프로세서 HOTpickit3에 관한 질문..2 만내 3479 2011.04.05
펌웨어 & 코딩언어 HOTVHDL 전가산기 설계 질문입니다. 나트륨 3007 2011.03.26
Prev 1 ... 9 10 11 12 13 14 15 16 17 18 ... 58 Next
  • 긍지는 인간이 입을 수 있는 가장 훌륭한 갑옷이다.
    - 제롬
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.