EE

    [임베디드] EXTI, External Interrupts

    보호되어 있는 글입니다.

    [임베디드] SysTick, System timer

    보호되어 있는 글입니다.

    [임베디드] Interrupt란 무엇인가?

    시험을 위해 정리하는 글이므로 가독성 없고 부연설명 없음 주의 SW 프로그래밍을 다뤄본 사람이라면 예외처리에 대해 배워본 경험이 있을 것이다. C++에서의 try, throw, catch와 같이 말이다. C++에서 예외를 throw하게 되면, 그 순간 코드의 흐름이 멈추며 스택이 풀리고 catch 블록을 실행하게 된다. interrupt는 이것의 HW 버전이라고 생각하면 될 것 같다. HW적으로 어떠한 이벤트가 발생하면 CPU는 main code의 실행을 멈추고 이에 대한 대응을 하게 된다. 이 대응을 interrupt service routine(ISR) 혹은 interrupt handler라고 한다. ISR의 실행이 끝나면 다시 원래의 흐름으로 복귀한다. CPU에서 이러한 HW적 이벤트를 감지할 수 ..

    [집적회로설계] transmission gate, pass gate

    알다시피 NMOS의 drain이 VDD와 연결되었을때, source의 전압은 Vs = VDD - Vtn까지만 올라올 수 있다.(MOS의 channel 형성 조건 때문에) PMOS 역시 drain이 GND와 연결된다면 Vs = Vtp까지만 내려갈 수 있다. 즉 NMOS는 weak 1, PMOS는 weak 0를 전달하게 된다는 문제가 있다.(voltage drop이 생긴다) 따라서 static CMOS에서는 PUN으로 PMOS, PDN으로 NMOS를 사용하여 strong 0, 1을 전달할 수 있도록 하는 것이다. static CMOS 방식 말고도 strong 0, 1을 전달할 수 있도록 하는 방식이 있는데, 이것이 transmission gate(=pass gate)이다. transmission gate는 ..

    [디지털 시스템] 배럴 시프터(barrel shifter)

    배럴 시프터는 순차 논리를 사용하지 않고 순수한 조합 논리만을 사용하여 지정된 비트 수만큼 데이터 워드를 이동시킬 수 있는 디지털 회로이다. (출처: 위키피디아) 기본적으로 2:1 MUX가 나열된 구조이다. 몇 비트 시프트를 할 것인지에 대한 카운트 신호에 의해 mux가 선택된다. 또한 한번의 연산으로 비트 이동을 끝낼 수 있다는 장점이 있다. 엄청 오랜만에 글 올리는 듯.... 개강하니까 바쁘다.. 요즘은 간단한 MIPS 프로세서 코드를 짜고 있다. 이번학기에 프로세서 설계랑.. 암튼 좀 제대로 된 프로젝트 몇 개 해보고 싶었는데 학교 공부 따라가는 것만으로도 바빠서 여유가 없음...

    [Verilog] 태스크(task)와 함수(funtion)

    함수 태스크 다른 함수 사용 O 다른 태스크 사용 X 다른 태스크 사용 O 항상 시뮬레이션 시간 0에서 실행 non-zero 시뮬레이션 시간에서 실행 가능 지연, 사건, 타이밍 제어 포함 불가능 지연, 사건, 타이밍 제어 포함 가능 하나 이상의 input input, output, inout을 하나도 가지지 않거나 여러개를 가질 수 있음 항상 하나의 값을 되돌린다. 값을 되돌릴 수 업지만 output을 통해 여러 개의 값을 전달 가능 지역 변수, 레지스터 등을 가질 수 있지만 wire는 가질 수 없다. always, initial문을 포함하지 않으며 always, initial문 혹은 다른 태스크, 함수로부터 호출됨 행위 수준 문장만 포함해야 한다. 태스크(task) task ~ endtask 키워드로 ..

    [Verilog] 베릴로그 관련 자잘한 거 정리

    계속 업데이트 중 * 벡터의 모든 비트를 초기화 시킬 때 reg [7:0] a = 8'b10100001; initial a = a