Day 4 - FPGA Example (with DE2-115)
·
IDEC 교육/Verilog HDL
프로젝트 제작 Example - CLK 기반 LED 주기적으로 ON / OFFmodule example1#( parameter N = 25)( input wire clk, input wire rstn, output wire out);reg [N-1:0] count;always @(posedge clk, negedge rstn) begin if (~rstn) count LED의 작동이 매우 빠르기 때문에 Count의 MSB가 1일때 켜고 0일때 꺼지도록 설계Quartus SettingsAnalasys 를 진행 후에 Pin PlanningPin Planning은 Reference File을 보고 각 PIN의 이름과 전압을 설정Synthesis까지 진행 후에 Programmer에 들..
Day 2 - Case / Casez / Casex
·
IDEC 교육/Verilog HDL
Case (조건)Case문은 순차적으로 if문을 거친다고 생각하면된다.예시 (인코딩)참고로 다수 case를 하나로 연결할 때는 ,로 연결 하면 된다.reg [15:0] rega;reg [ 9:0] result;case (rega) 16'd0: result = 10'b0111111111; 16'd1: result = 10'b1011111111; 16'd2: result = 10'b1101111111; 16'd3: result = 10'b1110111111; 16'd4: result = 10'b1111011111; 16'd5: result = 10'b1111101111; 16'd6: result = 10'b1111110111; 16'd7: result = 10'b1..
Day 2 - Latch
·
IDEC 교육/Verilog HDL
Latch (Reset 없음)edge와 상관없이 값이 변경될때 작동예시DLatchalways @(*) begin if (G) Q
Day 2 - Synchronous / Asynchronous
·
IDEC 교육/Verilog HDL
Synchronous (동기)모든 작동이 clk 즉 clock기반으로 작동예시Sync. Resetmodule dff_sync( input wire clk; input wire reset; input wire D; output reg Q;)always @(posedge clk) begin if (reset) Q Asynchronous (비동기)모든 작동이 해당 신호 기반으로 작동, clk와 상관이 없이 작동예시Async. Resetmodule dff_async( input wire clk; input wire reset; input wire D; output reg Q;)always @(posedge clk, posedge reset) begin if ..
Day 2 - Continuous / Procedural Assignment
·
IDEC 교육/Verilog HDL
Continuous Assignment (연속 할당)assign문을 사용하여 Net Type에 값을 할당combinational logic를 구현할 때 사용모든 연산이 병렬로 수행예시wire A;assign A = (B|C)&D;Procedural Assignment (절차적 할당)always 또는 initial 내부에서 사용always 같은 경우 always @ (*)에서 *에 해당하는 신호가 트리거될때 "순차적"으로 실행주로 reg Type 변수를 대상으로 함Blocking Assignment (=)한 문장 실행 후 다음 문장 실행Nonblocking Assignment (모든 할당 동시에 실행예시always @(posedge clk) begin out =, 같은 경우 섞어서 한 블록에서 사용..
Day 1 - About HDL
·
IDEC 교육/Verilog HDL
HDL: Hardware Description LanguageVerilog: CLanguage 기반System Verilog: C++Language 기반 - (Verilog 2001의 super-set)기타 문법은 HDLBits에 문제를 풀면서 정리중
Day 5 - ARM7(Assembly)
·
IDEC 교육/Embedded C
ARM7 Reference해당 링크에서 레퍼런스 파일을 받을 수 있다.ARM7 Quick Card해당 링크에서 짧게 요약된 버전을 받을 수 있다.현재 Keil과 Segger 툴을 사용중이고, Assembly는 Segger Studio를 사용중이다.C와 Assembly 동시 사용main.c에서 assem.s라는 assembly 파일에 정의된 함수를 불러와서 쓸 수 있는데DoAdd라는 함수를 assembly에서 정의하여 불러와서 사용하는 예시이다.main.c#include #include extern int DoAdd(int, int);int main(void) { printf("Program Started\n"); int a = DoAdd(3, -1); printf("Add: %d\n", a); p..
Day 4 - Memory Endian
·
IDEC 교육/Embedded C
Big EndianHigh Order Byte: 낮은 주소에 기록ADDR | 0x123456780x100 | 0x120x101 | 0x340x102 | 0x560x103 | 0x78Little EndianLow Order Byte: 낮은 주소에 기록ADDR | 0x123456780x100 | 0x780x101 | 0x560x102 | 0x340x103 | 0x12