계산기
Contents 실습내용
실습내용 4비트 덧셈/뺄셈기 설계 4비트로 표현되는 16진수 2개의 덧셈 또는 뺄셈을 실시한 후 결과를 LCD를 통해서 출력한다. 덧셈과 뺄셈은 unsigned로 한다. 연산을 위한 숫자 두개는 dip 스위치를 통해서 설정하고 push스위치를 통해서 각각 입력한다. 연산자는 두개의 push스위치를 이용하여 각각 입력한다. 연산을 수행하는 push스위치를 이용하여 연산을 하고 결과를 출력 한다.
실습내용 연산과정 DIP 스위치로 16 진수 설정 OPERAND1 PUSH 스위치 누르면 register file에 데이터 저장 OPERAND2 PUSH 스위치 누르면 register file에 데이터 저장 + 또는 – PUSH 스위치를 누르면 register file에 데이터 저장 !! 이 위의 과정은 순서에 관계 없이 진행 될 수 있어야 함 CALCULATE PUSH 스위치를 누르면 덧셈 또는 뺄셈 연산 후 연산 결과 register file에 저장 이때 lcd 출력은 lcd_test 모듈을 통해서 자동으로 이루어 짐
실습내용 소스코드 구조 LCD_DISPLAY LCD_TEST DATA_GEN
실습내용 LCD_DISPLAY LCD_TEST DATA_GEN Lcd_test 모듈과 data_get 모듈을 통합하는 최상위 모듈 LCD_TEST Lcd를 초기화 시키고 register file로 부터 데이터를 읽어서 lcd에 출력하는 모듈 DATA_GEN 외부 dip 스위치 및 push 스위치를 통해서 데이터를 읽어서 register file에 저장 및 계산 결과 저장
실습내용 입력 DIP_SW(0:3) : 16진수 한자리를 표현 PUSH1 : dip_sw를 통해서 설정된 16진수를 operand1로 설정 LCD의 첫열 첫칸에 16진수로 표시 PUSH2 : dip_sw를 통해서 설정된 16진수를 operand2로 설정 LCD의 첫열 세번째칸에 16진수로 표시 PUSH3 : operand1과 operand2를 이용하여 operator대로 연산 실시 LCD의 첫열 네번째칸에 ‘=’ 을 표시하고 계산하여야 함 PUSH_SW0 : operand1과 operand2에 대해서 덧셈 연산을 설정 LCD의 첫열 2번째 칸에 ‘+’를 표시 PUSH_SW1 : operand1과 operand2에 대해서 뺄셈 연산을 설정 LCD의 첫열 2번째 칸에 ‘-’를 표시 RESET : LCD에 표시 되는 내용을 지우고 새로운 입력을 받을 준비
실습내용 LCD 표시 내용 operator result A + 9 = 1 3 operand1 operand2
실습내용 입출력 범위 주어진 소스코드를 이용하여 빈칸을 채울 것 Pin mapping은 주어진 pin table을 이용할 것 입력 : 0 ~ f(16 진수) 출력 : 00 ~ ff(16진수) 주어진 소스코드를 이용하여 빈칸을 채울 것 Pin mapping은 주어진 pin table을 이용할 것 PUSH 스위치는 Active ‘L’임을 감안하여 소스코드를 작성 할 것
Pin table Signal Pin FPGA_CLK P79 FPGA_RSTB P205 Operand(3)(DIP_SW0) LCD_A Operand(2)(DIP_SW1) P13 LCD_EN Operand(1)(DIS_SW2) P15 LCD_D(0) Operand(0)(DIP_SW3) P16 LCD_D(1) Load_plus(PUSH_SW0) P18 LCD_D(2) Load_minus(PUHS_SW1) P19 LCD_D(3) Load_op1(PUSH1) P102 LCD_D(4) Load_op2(PUSH2) P101 LCD_D(5) Calculate(PUSH3) P100 LCD_D(6) LCD_D(7)