[논리회로설계] 프로젝트 self gas pump 설계
본 자료는 9페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
해당 자료는 9페이지 까지만 미리보기를 제공합니다.
9페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

[논리회로설계] 프로젝트 self gas pump 설계에 대한 보고서 자료입니다.

목차

없음

본문내용

X"17" => lcd_db <="00100000";
when X"18" => lcd_db <="00100000";
when X"19" => lcd_db <="00100000";
when X"1A" => lcd_db <="00100000";
when X"1B" => lcd_db <="00100000";
when X"1C" => lcd_db <="00100000";
when X"1D" => lcd_db <="00100000";
when X"1E" => lcd_db <="00100000";
when X"1F" => lcd_db <="00100000";
when X"20" => lcd_db <="00100000";
when X"21" => lcd_db <="00100000";
when X"22" => lcd_db <="00100000";
when X"23" => lcd_db <="00100000";
when X"24" => lcd_db <="00100000";
when X"25" => lcd_db <="00100000";
when X"26" => lcd_db <="00100000";
when others => lcd_db <= (others => '0');
end case;
end if;
end process;
LCD_A(1) <= '0';
LCD_A(0) <= '0' when
(lcd_state >= X"00" and lcd_state < X"06") or (lcd_state = X"16") else '1';
LCD_EN <= not lcd_cnt(0);
LCD_D <= lcd_db;
End design;
5) Discuss how you test it and provide the code
이번 실험에서는 시뮬레이션으로 확인하는 것이 아니고 KIT를 사용하여 확인한다.
KIT 동작을 위한 UCF 파일 코드는 다음과 같다.
NET "LCD_A[1]" LOC = P51;
NET "LCD_A[0]" LOC = P50;
NET "LCD_D[7]" LOC = P67;
NET "LCD_D[6]" LOC = P65;
NET "LCD_D[5]" LOC = P64;
NET "LCD_D[4]" LOC = P63;
NET "LCD_D[3]" LOC = P62;
NET "LCD_D[2]" LOC = P61;
NET "LCD_D[1]" LOC = P58;
NET "LCD_D[0]" LOC = P57;
NET "LED[7]" LOC = P11;
NET "LED[6]" LOC = P10;
NET "LED[5]" LOC = P9;
NET "LED[4]" LOC = P7;
NET "LED[3]" LOC = P5;
NET "LED[2]" LOC = P4;
NET "LED[1]" LOC = P3;
NET "LED[0]" LOC = P2;
NET "clk" LOC = P79;
NET "LCD_EN" LOC = P52;
NET "rst" LOC = P205;
NET "SW0" LOC = P18;
NET "SW1" LOC = P19;
NET "SW2" LOC = P20;
6) Provide the simulation
초기상태
스위치를 눌러 GAS, Dis, Para를 선택한다.
SW0은 GAS, SW1은 Dis, SW2는 Para선택이다.
연료가 선택되면 연료량 입력 상태로 이동한다.
연료량 입력 상태이다.
초기상태에서 SW1을 눌러 Dis가 선택되었다.
현재 연료량을 입력하지 않은 상태이므로 우측 하단에 있는 LED는 모두 꺼져있다.
연료량 입력은 SW1이고 연료량 입력 완료는 SW2를 누른다.
연료량 입력 상태이다.
현재 SW1을 눌러 연료량을 입력한 상태이고 이는 우측 하단에 있는 LED가 켜져있는 것으로 확인이 가능하다. 현재 5개의 LED가 켜져있으므로 연료량 입력은 5가 된다.
연료 주입 상태이다.
현재 상태에서는 연료 주입을 나타내기 위해 켜진 LED가 하나씩 꺼진다. 연료량 입력 상태에서 5의 연료량을 입력하여 5개의 LED가 켜있는 것을 확인할 수 있었는데 현재는 4개의 LED가 켜있다. 이는 현재 1의 연료주입이 되었고 4의 연료주입과정이 남았다는 것을 나타낸다. 모든 LED가 꺼지면 다음 상태로 이동한다.
연료주입완료상태
연료주입이 완료되었다. 이는 LCD에 완료라는 문구를 통해서 확인가능하다.
또한 켜있던 LED가 모두 꺼진 것을 통해서도 확인이 가능하다.
현재 상태에서 3초간 대기 후 초기상태로 이동한다.
3. Conclusion
FSM을 이용하여 Self Gas Pump를 설계하였다.
각 상태에서 입력에 따라 다른 출력을 내도록 설계하였으며 상태에서 상태로 변환하는 프로세스와
상태에서 출력하는 프로세스를 별개로 하는 방식을 채택하여 sensitivity list를 유동적으로 사용할 수 있었다.
LCD출력을 때에 따라서 다르게 저장된 값이 나오도록 코딩하였다.
여러개의 component와 포트맵을 사용하여 각각의 블록을 별개로 코딩한 후에 하나로 연결할 수 있었다..
4. Evaluation
상태머신을 사용하여 스스로 Gas를 충전하는 시스템을 설계하도록 하는 프로젝트였다. 상태도는 수업 시간에 배운 부분으로 충분히 파악 가능하여 쉽게 그려내었으나 이를 코딩 하는 것은 순전히 별개의 문제였고 빈 공간만 코딩한다고 하더라도 그 양이 많고 파악할 부분이 있었으며 KIT로 실험해 보지 못하여 수업 시간에만 간신히 실험해 볼 수 있었던 문제가 있었다. TEST bench를 사용할 수 있음에도 이를 사용하지 않은 것이 잘못이었다.
특히나 막상 KIT에 돌려보니 상태가 휙휙 지나가서 시작하자마자 다시 처음으로 돌아와서 아무것도 진행되지 않는 것처럼 보이는 문제점에서 오래 고착되어 있었는데 이는 flag의 사용 미숙이었음이 밝혀져 곧 해결해 내었다.
이번 프로젝트는 상태의 변화와 상태 당 출력을 두명이서 각각 코딩해 와서 합쳐 내었으며 블록별로 한명은 state_mc 한명은 LCD를 맡는 등 역할 분배를 충실히 하여 프로젝트 본연의 목적에 맞게 해 낸 것 같다.
한학기동안 배운게 별로 없다고 속으로 불평하고 있었는데 프로젝트를 온전히 끝내고 보니 VHDL의 고수가 되어있는 생각이 들었다.

키워드

  • 가격2,000
  • 페이지수27페이지
  • 등록일2014.06.23
  • 저작시기2014.5
  • 파일형식한글(hwp)
  • 자료번호#925444
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니