일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 28 | 29 | 30 |
- ICER
- 나무박멸
- 왕실의기사대결
- 포탑부수기
- 코드트리
- DP
- 슈퍼컴퓨터클러스터
- 구현
- 루돌프의반란
- BFS
- 순서대로방문하기
- 이진탐색
- ros
- 수영대회결승전
- dfs
- Calibration
- 백준
- 소프티어
- ARM
- ISER
- 마법의숲탐색
- 싸움땅
- 코드트리빵
- 조합
- DenseDepth
- 토끼와 경주
- 3Dreconstruction
- 마이크로프로세서
- 삼성기출
- 시뮬레이션
- Today
- Total
목록전체 글 (99)
from palette import colorful_colors
add, sub, mux, div, mux41 모듈을 각각 구현하고 최종적으로 alu16 모듈에 합친 파일. add, sub, mux, div, mix41이 alu16의 하위 모듈에 해당한다. module add(out, a, b);//adder 모듈 input [15:0] a, b; output [15:0] out; assign out = a + b; endmodule module sub(out, a, b); //subtractor 모듈 input [15:0] a, b; output [15:0] out; assign out = a - b; endmodule module mul(out, a, b);//multiplyer 모듈 input [15:0] a, b; output [15:0] out; assign..
dmux14.v 파일 module dmux14(y0, y1, y2, y3, in, sel); input [3:0] in; input [1:0] sel; output reg [3:0] y0, y1, y2, y3; always @(*) begin case(sel)//일반 모듈에서도 당연히 숫자 부여 가능. 2'b00 : begin y0 = in; y1 = 0; y2 = 0; y3 = 0; end//begin문으로 묶어주면 c언어에서 {}와 같은 역할!!!! 중요. 2'b01 : begin y0 = 0; y1 = in; y2 = 0; y3 = 0; end 2'b10 : begin y0 = 0; y1 = 0; y2 = in; y3 = 0; end 2'b11 : begin y0 = 0; y1 = 0; y2 = 0..
mux41.v 파일 (같은 역할을 하지만, 각기 다른 버전들로 mux들 4가지를 구현했다.) 참고: always문 안에 쓰이는 output변수는 reg여야한다.//1. case를 사용한 mux(가장 대표적) module mux41_1(y, a, b, c, d, sel); input [3:0] a, b, c, d;//4bit 입력 4개 선언 input [1:0]sel; //2bit select 선언 output reg [3:0]y; //4bit 출력 하나 선언 always @(*) begin//case로 mux4 to 1 구성 case(sel) 2'b00 : y = a; 2'b01 : y = b; 2'b10 : y = c; 2'b11 : y = d; endcase end endmodule //2. 3중 연..
fa.v 파일 (full adder) module fa(s, cout, a, b, cin); //full adder 모듈 input a, b, cin; output s, cout; assign {cout, s} = a + b + cin; //시스템 내의 full adder 계산 endmodule /* 다르게 짜는 방법 1 module fa(s, cout, a, b, cin); input a, b, cin; output s, cout; wire w1, w2, w3; xor u1 (w1, a, b); and u2 (w2, a, b); xor u3 (s, w1, cin); and u4 (w3, w1, cin); or u5 (cout, w3, w2); endmodule */ /* 다르게 짜는 방법 2 modul..
nand.vmodule NANDgate(in1, in2, out1); input in1; input in2; output out1; assign out1 = ~(in1 & in2); endmodule nand_tb.v`timescale 1ns/1ns module NANDgate_tb(); reg a; reg b; wire out1; NANDgate u1 (a, b,out1); initial begin a = 0 ; b = 0 ; #100 $finish; end always begin #5 a = ~a; end always begin #10 b = ~b; end /* 위 always문 이용 대신 initial문 안에 a = 0; b = 0 #5; a = 1; b = 0 #5; a = 0; b = 1 #5;..
좀 더 자세한 설명이 필요하다면 https://colorful-palette.tistory.com/24 참고! inv.v파일 //인버터 모듈 module inv(a,z); input a; output z; assign z = ~a; endmodule //인버터를 이용한 버퍼 모듈 module buffer1(a, z) ; input a; output z; inv u1(a, b); inv u2(b, z); endmodule inv_tb.v 파일 `timescale 1ns/1ns module buffuer_tb(); reg a; wire z; buffer u1(a,z); initial begin a = 0; #100 $finish; end always begin #1 a = ~a; end initial beg..
(이 카테고리는 경북대학교 ㅅㄷㄱ교수님의 논리회로설계 수업을 참고해 만들었습니다) 편집기: notepad ++ 사용, verilog: 이카루스 verilog란? 전자공학부 2학년 이상 학생이라면 논리회로 수업시간에서 and, or, not 등등 게이트로 MUX등을 구현해보고 조합 논리회로, 순차 논리회로 등 여러 디지털 회로 내용을 배웠을 것이다. 전자공학 관점에서 시스템을 바라볼때, 제일 물리학에 가까운 단에서 우리와 가까운 단으로 바라본다면 트랜지스터 단계 - 논리회로 - 마이크로프로세서(칩) - 보드 단계(칩들의 결합) - 시스템 단계(c 등 프로그래밍) 로 볼 수 있다. verilog는 이러한 논리회로 단에서의 하드웨어 디자인 설계 (CAD) 툴이라고 볼 수 있다. 논리회로 단계는 RTL(regi..
Instruction(명령어) 컴퓨터 언어에 쓰이는 명령어를 의미한다. Assembly language(예시: $add, $ls, ... ), Machine language(기계어, 010101...)로 표현 가능하다. 명령어에는 CISC 계열과 RISC 계열이 있다. CISC(Complex Instruction Set Computer) vs RISC(Reduced Instruction Set Computer) cisc는 명령어가 complex(복잡)하고, risc는 명령어가 reduced(간단)하다. cisc는 Intel CPU에 해당하는 Architecture고, RISC는 ARM계열에서 사용하는 애플의 M1칩 등등에서 사용하는 Architecture다. 좀 더 자세히 알아보자. CISC 예를 들어 ..