SOC 설계실습동기, 비동기 통신제출일담당교수학과학번이름1. 동기통신(PS/2로 키보드 통신)PS/2(Personal System/2)는 개인용 컴퓨터에서 쓰이는 접속 단자 규격의 하나로, IBM사의 PS/2 시리즈 컴퓨터에서 그 이름을 따 왔다. PS/2 단자는 독일 공업표준규격(DIN)의 커넥터 규격인 미니 DIN 6P 커넥터를 사용한다. 왼쪽그림은 PS/2 단자의 모양과 각 핀을 나타낸다. 2번과 6번 핀은 사용하지 않으며, 4번과 3번 핀에는 각각 +5V Vcc와 0V GND가 들어가고, 5번 핀은 클럭, 1번 핀으로 데이터를 전송한다. 오른쪽은 클럭에 대한 그림인데 클럭은 최소 30us~ 최대50us여야 하며 데이터를 읽기위한 클럭의 안전범위가 5us~25us란 것을 보여준다.PS/2 는 시작비트 1bit, 데이터 8bit, Parity 1bit, 정지비트 1bit 총 11비트의 전송을 하며 키보드가 보낸 데이터는 디코딩작업을 해서 Key Code로 변환되게된다. 키보드에서는 키가 눌렸을 때 그에 해당하는 코드를 호스트 장비로 보내며, 키가 떨어질 때 ‘xF0’ 데이터와 해당 키의 Key Code 데이터를 연속으로 전송한다. 또한 키가 계속 눌려져 있을 때는 그 코드를 100ms마다 연속으로 전송한다. 오른쪽 그림은 해당하는 키코드를 나타낸다.1-1-1 PS/2 Keyboard 코딩1-1-2 Test bench PS/2 Keyboard 코딩클럭과 리셋을 process문으로 주고 start_sig와 데이터를 임의적으로 추가로 지정해준뒤 시뮬레이션을 해보았습니다.데이터인 “00001001”이 bit_cnt의 카운팅에 맟춰 한자리씩 시프트 되어지는것을 확인할 수있습니다.1-2-1 PS/2 리시버 코딩1-2-2 Test bench PS/2 리시버 코딩클럭과 리셋을 process문으로 주고난 뒤 Tps2_clk와 Tps2_data를 임의로 입력으로 준 뒤 시뮬레이션을 확인하였습니다.각 상태와 bit_cnt에 맟추어 데이터가 시프트 되는 모습이 확인 가능합니다.1-3-1 PS/2 Parising 코딩1-3-2 Test bench PS/2 Parsing 코딩process문으로 리셋과 clk를주고 Tps_valid와 Tps2_data를 임의로 주는 식으로 코딩한후 시뮬레이션을 확인하였습니다.임의로준 데이터가 반복해서 출력되는 모습을 볼수 있습니다.2. 비동기 통신 (UART로 통신)RS232C는 1969년 미국의 EIA (Electric Industries Association)에 의해 정해진 표준 인터페이스로 "직렬 2진 데이터의 교환을 하는 데이터 터미널 장비이다. (DTE)와 데이터 통신장비(DCE)간의 인터페이스의 제반 사항을 규정하는 것이라 하는데, 여기에서 RS는 Recommended Standard의 약자이고 232는 특정규격의 식별번호이며 C는 버전을 의미합니다. RS232C는 직렬전송을 위한 규격이고 직렬전송은 한번에 한 비트씩 전송됩니다. 통신 거리는 일반적으로 15m(50ft) 이지만, 통신 속도가 높을 수록 거리가 짧아지고, 낮을 수록 좀 더 멀리까지 가능합니다. 물론 선로가 좋으면(실드 처리, 트위스트, 굵음) 좀 더 멀리 통신 가능하며 1:1 접속입니다. 일반적인 디지털 로직에서 사용하는 전압(+5V)을 사용하지 않고 ?5V ~ -15V (표준 ?12V)와 +5V~+15V(표준 +12V) 전압을 사용하며(최대 ±25V), Logic ‘1’을 위해 (-)전압을, Logic ‘0’을 위해 (+)전압을 쓴다.오른쪽 그림은 RS-232 포트의 구성도이며, 대부분 3번 핀의 TD, 2번 핀의 RD, 5번 핀의 GND만 사용하여 구현한다. 옆의 그림에서는 RS-232간의 연결 시 모습을 보여주고 있는데, 그림에서 알 수 있듯이 RS-232 통신은 전이중 방식의 통신을 지향한다.baud_clk는 비동기이므로 통신속도에 맟춰 직접 조정해주어야 하며 그것을 보어레이트를 맟춰준다고 한다. 비트 프레임은 그림처럼 구성되어있다. 스타트비트와 데이터, 패리티와 스탑비트로 구성되어 있다.
SOC 설계실습U_processor 설계제출일담당교수학과학번이름1. Program Counter(PC)의 설계프로그램 카운터는 프로세서 내부에 있는 레지스터 중의 하나로서, 다음에 실행될 명령어의 주소를 가지고 있다. 각 명령어 주기에 따라 자동으로 증가하여, 메모리에 있는 명령어들이 순차적으로 실행될 수 있도록 한다. CPU에서는 명령어를 반입하고 난 후에 명령어 포인터를 증가시키며, 현재의 명령이 실행될 때마다 그 레지스터의 내용에 1이 자동적으로 덧셈되고, 다음에 꺼낼 명령의 위치를 지시하도록 되어있다. (단, 특정한 상황에서의 명령어(서브루틴 호출/복귀 등)는 순차적 흐름을 중단시키고 프로그램 카운터에 새로운 값이 들어가도록 한다.)PC 설계 코드PC 테스트 벤치 코드000000000000000~*************11 까지 카운팅을 하게된다.2. Program Memory명령어를 저장하고 있는 모듈로써, 프로그램 카운터에서 출력된 명령어 주소 값을 입력으로 받아들여 그 주소에 해당하는 명령어를 출력하는 역할을 한다.코딩한 다섯 개의 데이터가 들어있는것을 확인 할 수있다.Memory 설계코드Memory 테스트 벤치 코드3.Instruction Decoder프로그램 메모리에서 출력된 명령어를 해석하여 각 모듈에 해당하는 제어신호를 생성 및 출력한다. MUX에 선택신호를 인가하여, 각 레지스터의 값들 중 하나를 선택하게하고, Decoder의 입력 단에 신호를 주어 그에 해당하는 레지스터로 신호를 보내게 한다. 또한 ALU에는 어떤 연산을 시행해야하는지 알려주어 결과 값이 Data Bus로 출력되도록 한다.IR 설계코드IR_decoder 테스트벤치 코드4.Decoder 2x4Decoder는 지정된 비트조합이 입력되는가를 검출하여 그 코드의 존재를 지정된 출력으로 표현하는 디지털 회로이다. 여기서는 레지스터를 선택하는 역할을 한다.decoder 2x4 설계코드Decoder 2x4 테스트 벤치코드5.Mux 2x1, Mux 4x1MUX는 여러 개의 데이터 소스로 부터 입력되는 디지털 정보들을 하나의 출력 단을 통해 전송하는 소자이다. 즉, 선택신호로 입력 신호 중 무엇을 출력해 낼지 선택할 수 있다. 여기서 MUX4x1은 IR Decoder에서 받은 선택신호를 통해 해당 Register를 선택하며, MUX2x1도 IR Decoder에서 선택신호를 받아 명령어와 연산 결과 값 중 하나를 출력하는 역할을 한다.Mux 4x1 코드 Mux 2x1 코드Mux 4x1 테스트벤치 코드 Mux 2x1 테스트벤치 코드6.RegisterRegister는 입력된 데이터 및 출력된 Data 결과 값을 저장하고 있는 Latch의 역할을 한다Register 설계 코드 Register 테스트벤치 코드7.ALUALU(산술논리장치)는 컴퓨터 명령어 내에 있는 연산자들에 대한 연산과 논리동작을 담당한다. 이론적으로 ALU는 연산장치(Arithmetic Unit)와 논리장치(Logic Unit)의 두 부분으로 나뉘어져있는데, 연산장치는 데이터의 합, 차, 곱, 나눔, 증가, 감소, 전송 등을 수행하며, 논리장치는 데이터의 AND, OR, XOR, A의 보수 등을 수행한다.ALU 설계코드ALU 테스트벤치코드8. Simple ProcessorSimple Processor 설계코드어드레스버스는 1씩 카운팅되고있고 clk에 맟춰서 데이터버스에는 10과 5를 더해 15를 출력하는
SoC 설계실습 ReportMux4x1~ALU제출일담당교수학과학번이름1. Mux 4x1Mux 4x1 코드입니다.이코드를 바탕으로 test bench코딩을 합니다.1~5 : 라이브러리는 같은방식으로 선언합니다.6 : 입출력포트는 지정하지 않습니다.8~14 : 대신 Component를 선언해주고 동작을 기술해줍니다.16~18 : 동작을 기술할 내부신호입니다.22~53 : 입력내부신호인 TA~TD, Tsel(0~1)을 처리하는 코드입니다. 각 신호에게 다른값을주어 겹치지 않게 해줍니다.55~62 : Component의 포트와 내부신호를 각각 연결해줍니다.입력 00, 01, 10, 11일 경우 Y가 각각 A, B, C, D가 출력되는모습을 볼 수있다. 프로젝트에 코드는 위 Test bench 코드와 원래의 mux코드가 모두있어야 Y까지 제대로 출력된다. Test bench만 있다면 Y는 출력되지 않는다. 그리고 주의할것이 Entity와 Port도 맞춰줘야 컴파일 및 시뮬레이션에서 연결이 되어 출력이 정상적으로 나오게 된다.2. Decoder1x4test bench 시뮬레이션을위해디코더를 다음과 같이 코딩하였다.6 : 포트는 선언하지 않는다.9~14 : Component로 포트를 지정해준다.16~17 : 내부 신호를 선언한다 Tdata는 1개의 핀이므로 2비트를 선언해주도록한다.20~30 : 입력신호를 설정한다33~39 : port 맵으로 내부신호와 포트를 연결해준다.00일때 A, 01일때 B, 10일때 C, 11일때 D가 출력되는것을 확인할 수 있다. 문제점으로 D부분에 글리치가 발생하였다.3. 16진 CounterTest bench를 위해 다음과 같이 16진 카운터를 코딩하였다.test bench 코드이다. 위 코드들과 마찬가지로 Entity의 선언은 없으며 Component로 포트를 지정해주고 내부신호를 선언한뒤 process로 입력신호가 어떻게 동작할지 기술해준다. Trst는 내부 Reset 신호인데 0초부터 동작하도록 코드를 작성한다. if(now=0 ns) then 20번째줄이 그 동작을 하게해준다. 그리고 마지막으로 port map으로 내부신호와 포트를 연결해주며 코드를 끝낸다.0000~1111까지 카운트한뒤 0000으로 돌아가는것을 확인할 수 있다.4. Decoder 2x4test bench를위해 다음과 같이 코딩하였다. 위 2의 1x4 Decoder때와는 달리 입력핀이 2개이므로 downto 를 사용하지않아도 된다.디코더 1x4때와 크게 다를건없다. (1 downto 0)로 했을때는 process부분에서 1과 0을 따로따로 전부해줘서 코드가 길어졌었지만 2x4는 그럴필요가없으므로 process가 Tdata_A와 Tdata_B 각각 하나씩만 있으면 되므로 코드는 1x4보다 짧아지게 된다.1x4의 decoder과 같은 출력을 보이는것을 확인할 수있다.5. ALU와 Simple porcessor구조산술 논리 연산 장치의 구성은 덧셈을 위한 가산기를 중심으로 연산에 사용되는 데이터와 연산 결과 등을 임시적으로 기억하기 위한 레지스터, 보수를 만드는 보수기, 오버플로를 검출하는 오버플로 검출기 등으로 구성되어 있다.덧셈을 위한 가산기는 2개의 수를 더할 수 있는 전가산기를 필요로 하며 전가산기의 수는 직렬 연산 방식에서는 1개가 필요하지만 병렬 연산 방식에서는 데이터를 구성하는 비트의 수만큼 필요하다.보수기(complementary)는 컴퓨터에서 감산을 할 때에 빼는 수를 보수로 바꾸어 가산기에 입력하여 덧셈을 하도록 한다. 이와 같이 빼는 수를 보수로 바꾸어 주는 회로가 보수기이다. 보수기에서 사용하는 보수는 1의 보수와 2의 보수가 있는데 일반적으로 2의 보수기를 많이 사용한다.오버플로 검출기는 여러 가지 연산을 시행할 때 연산 결과를 레지스터에 모두 저장할 수 없는 경우가 생기는데 이 상태를 오버플로라고 하며 오버플로가 발생하면 정확한 연산 결과를 얻을 수 없으므로 연산의 각 단계마다 오버플로 검출기를 두어 에러 발생 체크를 해서 사용자에게 알려준다.레지스터는 어떤 데이터를 일시적으로 기억하는 장치로 그 기능에 따라 여러 가지 이름이 붙여진다. 프로그래머가 프로그램에 의해 직접적으로 기억된 내용을 변경시킬 수는 없으나 중앙 처리 장치 내의 제어 장치에 의해 사용되는 명령 레지스터(instruction register)와 프로그램 카운터 (program counter)가 있으며 이들은 프로그램 수행의 제어를 위하여 사용된다. 또 프로그래머가 프로그램을 통해서 직접적으로 기억된 내용을 변경시킬 수 있는 연산용 레지스터가 있는데 이것은 연산 조작을 수행 할 때 연산 장치의 입력 자료와 출력 결과를 일시적으로 보관하는 기억장소로 어큐뮬레이터(ACC : Accumulator)라고 부른다.
칸트의 인식론1.칸트의 철학의 체계2.합리론 vs 경험론3.순수이성비판의 의도4.인간의 이성,인식 능력5.물자체와 현상의 구별6.자연의 입법자로서의 인간7.도덕철학과의 관련1. 칸트철학의 체계는 삼박자로 삼각형을 그리고 진선미로 표현합니다. 진은 진리, 인식론의 영역, 선은 도덕,윤리의 영역 미는 미학,에술 철학을 의미합니다. 칸트철학은 이 진선미가 긴밀한 관계를 갖게 됩니다. 그중 진의 인식론에서 순수이성비판이란 책의 문제의식을 살펴보면 인간의 이성의 성과(인식, 지식)를 특히 자연과학적 지식을 어떻게 기초짓고 정당화 할수있는가? 라고 묻습니다. 과학자들은 자연현상이 어떤 보편적원리를 가지고 일어나는지 연구하는데 칸트는 인간이 어떤능력을 가지고있길래 과학자들이 관찰하고 연구하는지에 대해 개나 고양이는 못하는데 인간만이 어떻게 가능한가? 라는게 칸트의 관점이고 인간 이성능력의 한계와 범위 그리고 그 원리에 대한 탐구를 인식론이라 합니다.코페르니쿠스는 모두가 태양이 지구를 돈다고 천동설을 주장할때 아니다 지구가 태양을 도는것이라는 말을 한 사람입니다. 코페르니쿠스는 행성의 운동을 관찰하다가 행성의 역해현상을 이상히 여겨 뒤집어 생각했더니 역해현상이 설명이되고 복잡한 행성의운동도 간단히 설명되더라 하는것입니다. 코페르니쿠스적 전회란말은 기존의 통념을 깨고 180도 뒤집어 생각해본다는 말을 의미하는데 칸트는 자신의 철학적 발상을 코페르니쿠스적 전회 라고 불렀습니다. 즉 칸트는 과학자들이 발견, 발명을 하는것을 인간인 주체가 객체인 대상을 보는 관점이 아닌 대상이 주체에게 다가온다는 관점이라고 하였습니다.2. 인간의 인식에대해서 두 개의 학파가 팽팽히 대립하는데 합리론과 경험론으로 나뉩니다.합리론은 인간의 지식, 앎이 인간의 이성에 의해서 이뤄지며 오감은 인식을 방해하는것이라생각하였고 우리가 알고있는 지식대부분이 논리적으로 머릿속에 다 잠재적으로 갖고 태어난다고 보았다. 인식론에서의 경험은 우리가알고 있는 ~한적있다가 아니라 감각적 경험을 말하는데 이런 경험으로 인식, 앎이 이루어진다고 보는게 경험론 철학입니다. 논리랑 연결해서 생각해보면 연역추론은 합리론에 가깝고 귀납추론은 경험론이랑 가깝다고 볼 수 있다. 대표적인 합리론의 3인방으로 데카르트, 레이브리츠, 스피노자가 있고 경험론에는 로크, 버클리, 흄이 있습니다. 하지만 칸트는 저 두입장을 모두 반박합니다. 둘다 어느 한쪽만 바라보고 설명을 하고있다라고 말하며 이런말을 했습니다 “직관(감각, 감성)없는 개념(이성,논리)은 공허하고 개념없는 직관은 맹목적이다”. 직관없는 개념은 공허하다 이부분은 합리론을 비판하는것이고 개념없는 직관은 맹목적이다 라는것은 경험론을 비판하는 뜻입니다.3.순수이성비판이란 책은 무엇을 의도하는가합리론과 경험론 두입장을 비판하면서 비판만하는게 아니라 받아들일것은 받아들이고 양입장을 절묘히 결합한것이 첫 번째 의도이고 근대 자연과학적 지식을 철학적으로 정초짓기위해 인간이성능력의 가능성, 한계, 범위, 원리에 대한 탐구하는게 두 번째 의도이고 인간의 이성능력에 대해 비판적으로 꼼꼼히 따져 묻는게 세 번째 의도입니다. 그래서 칸트는 자기철학을 비판철학이라고도 했으며 칸트는 대상에 대한 관심이없고 인식주체에 대한 탐구를 하였습니다. 이런것을 선험철학이라고 했고 선험이란 대상을 경험하기 이전에 우리가 이미 갖추고있는 인식능력, 체계, 탐구하는 철학입니다. 이런관점을 코페르니쿠스식 전회 라고 합니다.4. 인간인식능력의 형식적 구조를 보면 감성과 오성으로 나눌수 있습니다 감성은 수동적 수용능력이라 하며 오성은 능동적 구성능력이라 합니다. 수동적 수용능력을 또다른말로 직관이라고도 하는데 칸트는 이 직관이 두가지 형식을 가지고 있다고 보았습니다. 첫 번째로는 공간이라는 형식이 있고 외적 대상을 수용하는 능력, 외감의 형식이라 하였고 두 번째로는 시간이라는 형식이 있고 내적대상을 수용하는 능력, 내감의 형식이라 하였습니다. 물병을 예로들면 왜 물병이 저렇게 보일까 라고 생각하면 두가지 방식을 생각할수 있습니다. 하나는 원래 저렇게 생겼기 때문에 나한테 이렇게 보이는거야 라고 생각하는 방식과 두 번째로는 원래 물병자체는 어떻게 생겼는지는 모르겠으나 나한테는 이렇게 보인다고 생각하는 방식이다. 우리는 세상을 객관적을 보고 있다고 생각하지만 이미 우리는 우리 의지와 상관없이 외적이라면 공간이라는 3차원의 틀로 내적이라면 내 마음속의 상태 짜증나 추워 이런 생각의 틀로 세상을 보고있다는 것입니다. 모든인간은 그런 틀을 모두 갖고 있으며 물자체가 감성이란 틀을 지나온 상태를 감각의 잡다라고 하는데 이건 인식할수 없으며 이것을 오성이란 틀로 걸러서 판단으로 분류하면 그게 우리가보는세상, 지식이 됩니다. 여기서 오성은 오성,판단력,이성으로 나눌수 있는데 오성이란 틀을 지나 판단으로 나누는게 지식인데 그럼 이성은 무엇인가? 이성은 인간의 위대성, 인간의 스캔들함을 나타낸다. 이성이란 능력은 논리적 추론(연역과 귀납등), 지식들을 체계화하는것을 가능하게 해줍니다. 또 인과의(원인과 결과) 계열(원인결과반복)을 무한히 소급하여(거꾸로 올라가서) 무제약자(신, 절대자,원인이 없는자)에로 향해가려는 형이상학적충동을 가능하게 합니다. 그럼 논리적으로 무제약자 위치에 있는것은 인식이안되고 오감에 포착에 안되는데 이것을 지식이라 할수 있는가? 지식이아니라고 무익하고 불필요 하고 무의미, 쓸모없는가? 아니다 이건 도덕철학에서 인간 행동의 원리가 된다.
칸트의 윤리학1.칸트윤리학의 체계적 위상및 의도1)인식론과의 관련2)의도2. 인간존재의이중성3. 인격과 선의지(좋은의지)4. 도덕적 행위5. 정언명령(명법)6. 최고선의 개념7 결론1. 칸트의 인식론은 인간의 경험세계, 현상계, 감성계 인과율이 지배하는 세계, 필연성이 지배하는 세계를 다루었지만 윤리학은 초감성계, 예지계라고도 하며 자기원인 자유의 세계, 도덕을 다룹니다. 인간의 도덕적 행위를 가능케하는 능력을 실천이성이라 하며 인간의 실천이성의 가능성 원리에 대한 탐구 즉 인간의 존엄성을 확보하는것이 칸트의 윤리학입니다.2. 칸트는 인간을 자연적존재자와 자유의존재자 두가지로 보고 이것을 인간존재의 이중성이라고 하였습니다. 자연적존재자는 현상게의 인과율에 지배받는 측면이고 생물학적 현상, 정서, 감정의 현상인 물이 마시고싶거나 밥을먹고싶거나 하는것이고 자유의존재자로는 예지계의 자유에 의해 지배되는 측면으로 자연적으로 오는잠을 버티고 수업을 듣는 행위를 예로 들수 있습니다. 칸트가 말하는 자유는 Negative (S is not P), Positive(S is P)를 말하며 Negative한 자유는 인과적 필연성으로부터 독립하는 자유이며 쏟아지는 잠을 버티고 안자! 하는 자유이고 Positive한 자유는 도덕법칙에 의해 내 의지가 규정된 자유이며 말 그대로 내스스로 만든 법칙대로 움직이는 자유 또는 자율 스스로 법칙을 만드는 것을 의미합니다. 동물에게는 자연의 존재만 있는것이며 도덕이 불가능한것이고 신, 절대자는 자유의 존재자만 해당하며 도덕이 불필요한 경우인데 인간은 그 중간에 위치했다고 볼 수 있습니다.3.인간을 여러 가지로 규정할 수가 있는데 상품같은게 아니라 도덕적 윤리적주체로써 볼때 우린 인격이라 합니다. 뭔가를 원하는 능력, 의욕하는 능력을 선의지라 합니다. 선의지는 옳은 행위는 오로지 그것이 옳다는 바로 그 이유 만으로도 선택하고 의욕하는 것이며 아리스토텔레스적으로 말하면 가능테가 있다고 본것입니다. 인간이라면 저렇게 행동할 싹수는 있다는 뜻입니다. 인간은 나쁜일을 하려는 유전자가 있어 행동하고 싶어도 안되라고 생각하며 거부하는게 선의지입니다.4. 한 개인의 주관적인 행위의 원칙이나 규칙을 준칙이라 하며 이 준칙이 인간을 포함한 모든 이성적 존재의 의지에 보편적으로 유효,타당 할때 이준칙은 도덕법칙이 됩니다. 이 도덕법칙에 대한 존경심에서 말미암은 행위의 필연성을 의무라 하는데 이 의무로부터 나온행위를 칸트는 도덕적 행위라 말합니다.5.정언 명령 , 정언 명법이라고도 하는데 도덕에도 명령이 존재합니다. 두 살짜리한테 미적분풀라고 시키는 멸령이나 게임만 잘하는 애한테 공부좀하라고 하는 명령은 의미가없습니다. 그래서 명령은 인간존재의 이중성에 의존하게됩니다. 할수있는 능력을 갖추고 있으나 늘 하는것만은 아닌 존재자에게 명령을 하는것이 의미가 있습니다. 누군가가 명령을 한다는것은 자율이란 능력이 싹수만큼이라도 있다는것을 의미합니다 그런데 그 명령자체도 하지 않는것은 나를 신적인 존재로 보거나 개나 고양이수준으로 본다는 의미가 되는것입니다.인간에게 하는 명령은 크게 두가지가 있는데 외적행위(결과)를 규제하는 법적명령이 있고 내면적의지(동기)를 규제하는 도덕적명령이 있습니다. 도덕적명령은 또 두가지로 나뉘는데 가언명령과 정언명령으로 나뉩니다. 가언명령은 조건이 붙는 명령을 말합니다. 만약~하려면 ~해라 라는식이며 가언명법은 가정부분이 왔다갔다 바뀌면 명령도 왔다갔다 하게되어 칸트는 도덕적명령은 가언명령이 아니라 정언명령이어야 한다고 했습니다 정언명령은 구냥 그게옳으니까 하는 무조건명령입니다. 정언명령의 두가지 예로 칸트가 한 말이 있는데 첫째로 너의 의지의 준칙이 항상 동시에 보편적 법칙 수립의 원리로써 타당할수 있도록 그렇게 행위하라 라는 명령이 있는데 이 명령은 준칙을 너무 개인적으로 말고 신뢰하고 소통할수 있는 보편적인 준칙을 만들라는 뜻이며 둘째로 너자신의 인격에 있어서나 다른 모든 사람의 인격에 있어서나 인간성은 한낱 수단으로써 대하지말고 동시에 목적으로써도 대할수 있도록 그렇게 행위하라 라고 명령하였다. 이말은 사람을 단지 수단으로만 보지말고 목적도 같이 고려하라는것이다.6.윤리의 영역에서 최고선은 윤리와 관련하여 인간이 ‘희망’할수있느 최상의 완전한 상태를 말합니다. 완전성은 현상계에는 존재 하지않고 이미 있는것은 희망을 할 수 없습니다. 도덕적으로 최고의 상태는 인간의 내면이 도덕법칙에 완전히 부합하는 상태입니다. 이 상태는 유한한 시간속에서는 되기 힘든 상태이므로 도달하기위해서는 굉장히 많은 시간이 걸려서 영혼의 불멸이 전제가 되어야 합니다. 두 번째로는 도덕적인 삶이 행복한 삶과 완전히 일치할 때 도덕적으로 최고의 상태라고 합니다. 사실상 도덕적인사람이 불행한경우가 더 많으며 동화속 얘기처럼 권선징악이길 희망합니다. 이것을 이루러면 전제는 신일때 이뤄지며 도덕적인 삶과 행복한삶을 같이 충족시켜줄수 있습니다. 이렇게 인간에게는 존재할수 없는데 희망하는것은 무의미한가? 그건 아닙니다. 영혼의 불멸이나 신은 인식할수없어도 믿음의 영역, 희망의 영역으로 넘기게 됩니다. 이건 우리로하여금 끊임없니 노력하게 만드는 초월적인 힘이되므로 존재하지 않는다고 불필요하거나 무익하지 않습니다. 결국 최고선이란 수학에서 쌍곡선그래프와 같습니다 인간은 신이아니기에 점점 가까워질뿐 절대 닿을수 없습니다. 그럼에도 불구하고 인간은 절대 존재하지않는 x,y축에 닿을수없다는걸알아도 있다는것을 알기 때문에 가까이가기위해 노력을 할뿐인것입니다.