본문 바로가기

전체 글

(81)
[디지털 설계 및 실험] Verilog 기본 vol4.-모듈과 포트 지난 포스팅에서는 System Tasks에 대해서 알아보았다. 이번 포스팅에서는 베릴로그의 기본 설계 단위인 모듈에 대해서 알아보자. 💻 Module이란? 앞서 다뤘지만, 모듈에 대해서 한번 더 알아보자. 모듈이란 Verilog에서 구체적 부분을 구성하고 있는 기본 설계단위이다. 머리부에는 모듈이름, port 목록들을 적어둔다. 선언부에서는 필요한 것들을 선언한다. port, reg, wire, parameter 들을 선언하며, 이 부분은 C언어의 변수선언하는 것과 똑같다. 몸체부에서는 기능들을 구현한다. 마지막에 endmodule을 꼭 붙여서 마무리 해줘야한다. 밑 SR Latch에 대한 예제를 보자. 위는 SR Latch를 베릴로그로 표현한 코드이다. 먼저, SR_Latch 모듈을 보자. 여기서 처음..
[디지털 설계 및 실험] Verilog 기본 vol.3 - System Tasks 저번 포스팅에서는 데이타 타입들에 대해서 알아보았다. 이번 포스팅에서는 System Tasks들에 대해서 알아보겠다. 💻 $display 사용법 : $display(p1,p2,p3,...,pn); 우리가 익히 알고 있는 printf와 유사하다. %d : 10진수 %b : 2진수 %s : 문자열 %h : 16진수 %c : ASCII문자 %m : 계층 이름(인자가 필요하지 않다.) %v : 강도 %o : 8진수 %t : 현재 시간 %e : 실수를 과학적 표기법으로(ex. 3e10) %f : 실수를 십진 표기법으로(ex. 2.13) %g : 실수를 위 둘중 짧은 것으로 출력 예시) $display("Hello Verilog World"): // Hello Verilog World reg [4:0] port i..
[디지털 설계 및 실험] Verilog 기본 vol.2 - Data types 저번 포스팅에서는 베릴로그의 구성 요소에 대해서 간략히 알아보았다. 이번 포스팅에서는 베릴로그 기본 데이타 타입에 대해서 알아 보도록 하겠다. 💻 Identifiers and Keywords Keywords는 구조를 정의하기 위한 특수한 식별자다. Identifiers는 객체에게 주어진 이름이라고 보면 된다. reg value; // reg is keyword; value is an identifier input clk; // input is keyword, clk is an identifier reg, input 은 keyword 이고, value,clk는 identifier이다. c언어와 구조가 똑같다. 💻 Nets Nets는 하드웨어 구성요소 간의 물리적인 연결을 표현해준다. 주로, 키워드 wire..
[디지털 설계 및 실험] Verilog 기초 vol.1 - 구성 요소 여름이었다. 전역한지 3주밖에 되지 않아 뭐든지 해낼 수 있을 것만 같았고, 나는 무적이었다. 그렇게 디지털설계 및 실험을 수강신청 했다. 그때 나는 그랬으면 안됬다. 허나, 피하지 못하면 즐기라고. 즐겨보자. 💻Verilog란? 전자회로 및 시스템에 쓰이는 하드웨어 기술 언어(HDL, Hardware Description Language)이다. 쉽게 말해 하드웨어 코딩이라고 생각하면 된다. C언어와 문법이 비슷해 쉽다(?????) 고 한다. 💻Module Verilog에서 쓰는 기본 설계 단위이다. 포트 인터페이스를 통해 상위 블록에 필수 기능을 제공한다. 모듈의 기본 구성을 알아보자. module (); ... ... ... endmodule c언어와 구성이 상당히 비슷하게 되있는 것을 알 수 있다...
[컴퓨터 구조] Performance 💻 Perforamance 말그대로 컴퓨터가 한 작업을 하는 성능을 의미한다. 1. 2 key metrics in computer performance Execution time (response time) 처음부터 끝까지 걸리는 시간 Execution time과 response time이 같은것은 아니다. Throughput 주어진 시간동안 처리한 작업량 2. Performance = 1/ExecutionTIme 성능과 ExecutionTIme은 반비례함. 💻 Time Performance 먼저, 시간 측면에서의 성능에 대해 얘기해보고자 한다. 시스템 전체의 시간 측정에는 Elapsed time이라는 것이 쓰인다, CPU 작업 시간, I/O에 걸리는 시간 등 여러가지가 이에 해당된다. 그 중 CPU t..
[시스템 프로그래밍] Linux System - 기본 명령어 💻 리눅스란? 리눅스란 쉽게 말해서 운영체제의 일종이다. 소스 코드가 공개되어 있는 대표적인 오픈 소스 소프트웨어로서 가장 많은 참여자가 관여하고 있는 오픈 소스 프로젝트이다. 웹 서버, 모바일, 임베디드 기기 등 여러가지 분야에서 구동되고 있는 운영체제이다. 리눅스의 종류는 레드햇 등 유명한 것이 많다. 그 중 우분투를 사용해서 업로드 할 예정이다. 💻 기본 명령어 c에서의 printf 처럼 리눅스에서 필수로 알아야하는 기본 명령어들이 많이 생긴다. 기본 명령어들을 외우기 쉽게 포스팅으로 남겨두려 한다. 1. ls : 현재 위치의 디렉토리의 모든 파일을 보여줌 ls-l : 파일의 상세정보 ls-t : 파일들을 최신 순으로 표시 ls-r : 파일들을 오래된 순으로 표시 ls-a 경로안의 모든파일을 나열한..
[JAVA11/알고리즘] 8-2 바둑이 승차 💬 문제 철수는 그의 바둑이들을 데리고 시장에 가려고 한다. 그런데 그의 트럭은 C킬로그램 넘게 태울수가 없다. 철수는 C를 넘지 않으면서 그의 바둑이들을 가장 무겁게 태우고 싶다. N마리의 바둑이와 각 바둑이의 무게 W가 주어지면, 철수가 트럭에 태울 수 있는 가장 무거운 무게를 구하는 프로그램을 작성하세요. 🔨 입력 첫 번째 줄에 자연수 C(1
[JAVA11/알고리즘] 7-8 송아지 찾기 1 (BFS : 상태트리탐색) 💬 문제 현수는 송아지를 잃어버렸다. 다행히 송아지에는 위치추적기가 달려 있다. 현수의 위치와 송아지의 위치가 수직선상의 좌표 점으로 주어지면 현수는 현재 위치에서 송아지의 위치까지 다음과 같은 방법으로 이동한다. 송아지는 움직이지 않고 제자리에 있다. 현수는 스카이 콩콩을 타고 가는데 한 번의 점프로 앞으로 1, 뒤로 1, 앞으로 5를 이동할 수 있다. 최소 몇 번의 점프로 현수가 송아지의 위치까지 갈 수 있는지 구하는 프로그램을 작성하세요. 🔨 입력 첫 번째 줄에 현수의 위치 S와 송아지의 위치 E가 주어진다. 직선의 좌표 점은 1부터 10,000까지이다. 출력 🔨출력 점프의 최소횟수를 구한다. 답은 1이상이며 반드시 존재합니다. 👊🏻 예시 입력 1 5 14 👊🏻 예시 출력 1 3 💡 해결 제목부터 ..