본문 바로가기

반응형

HDL

(6)
[Verilog HDL] 8. 순차논리 (Sequential Logic) Adder 설계 앞에서 배운 DFF 설계 기법을 활용하여 clock에 동기되어 동작하는 adder를 설계해 보자. 우선 완성된 source code는 아래와 같다. module adder_seq ( input clock, input resetn, input [7:0] a, input [7:0] b, output reg [7:0] y ); reg [7:0] sum; always@(*) begin sum = a+b; end always @(posedge clock or negedge resetn) begin if (!resetn) y
[Verilog HDL] 6. Simulation Tetstbench까지 만들었으면 simulation을 진행 할 수 있다. iverilog가 설치 되어 있으면 아래와 같은 명령으로 simulation을 수행한다. >>iverilog adder.v test.v 위의 명령을 실행하고 디렉토리 리스트를 보면 a.out 라는 실행 파일이 생성된 것을 볼 수 있다. 이를 실행 시키면 아래 그림 처럼 a,b,y에 대한 값이 정상적으로 출력 되는 것을 볼 수 있다. iverilog 실행 시 출력으로 생성되는 실행 파일의 이름을 지정할 수 있는데 아래와 같이 하면 된다. iverilog -o test_adder adder.v test.v 이렇게 하면 a.out이 아니라 test_adder라는 이름의 실행 파일이 생성되고 마찬가지로 이를 실행 시키면 simulatio..
[Verilog HDL] 5. Testbench module 설계가 끝나면 원하는 동작을 하는지 검증해야 한다. 이를 위해 적당한 입력을 가하고 출력을 모니터 해서 검사하는 코드를 만들어야 하는데 이를 testbench 라고 한다. Testbench는 검증하고자 하는 기능에 따라 여러가지 형태로 코딩할 수 있는데 사용자가 입력을 명시적으로 정의하여 테스트 하는 기법을 direct test라고 하고 입력을 랜덤하게 정의하여 사용하는 것을 random test라고 한다. 일단은 기본적인 direct test의 한 가지 예를 아래에 코딩하였다. `timescale 1ns/1ps // time unit / time resolution --------------(1) module test; // module name reg [7:0] a, b; // reg t..
[Verilog HDL] 2. Module module은 하드웨어 기능을 구현하는 기본 단위이다. module은 입력 port를 통하여 입력 신호를 받고 이를 처리하여 출력 port를 통하여 module 외부로 출력한다. 아래는 기본적인 module의 구조이다. module adder // adder는 module의 이름 ( input wire [7:0] A, // 8bit 입력 port input wire [7:0] B, // 8bit 입력 port output wire [7:0] Y // 8bit 출력 port ); /* ..... 기능 구현 부분 */ endmodule // module의 마지막 'module'이라는 keyword 뒤에는 항상 module name이 와야 한다. 그리고 괄호 안에 입/출력 port를 정의한다. 여기에 입/출력..
[Verilog HDL] 1. Verilog란? Verilog는 HDL(Hardware Description Language)의 하나로 디지털 논리 회로를 설계 하기 위한 언어이다. 설계라고 했지만 기능 검증을 위한 테스트 벤치 제작 등 검증 용도로도 사용된다. 문법 구조는 C언어와 매우 유사하다. Verilog를 이용하여 디지털 논리 설계를 하여 반도체 chip으로 만드는 과정은 기본적으로 다음과 같다. module 설계 testbenchh 설계 simulation synthesis (합성) placement & layout wafer mask 제작 ASIC chip 제작 일반적으로 chip 제작 과정에서 설계와 기능 검증 까지 설계 혹은 front-end 단계라고 부르고 그 이후 단은 back-end단계라고 부른다. (다른 기준으로 나누는 경우도 ..
Ch1. SystemC의 구성요소 - module SystemC는 hardware를 표현하고 시뮬레이션 하기 위한 class library라고 할 수 있다. 그러면 어떤 class들이 있을까? 그 중 대표적인 것이 sc_module이다. Verilog에서 hardware를 기술할 때 module이라고 하는 keyword를 사용하여 hardware module을 기술한다. Hardware module은 input, output port와 내부에 function을 기술하기 위한 always문과 같은 process들이 존재한다. process라고 하는 것은 sensitivity list에 감응하여 동작하는 단위 기능이라고 생각하면 좋을 것이다. 주지 하다 싶이 process들은 서로 concurrent하게 동작하여 hardware특성을 기술할 수 있는 것이다..

반응형