HDL
-
[Verilog][기초문법] 게이트 딜레이카테고리 없음 2022. 1. 5. 22:24
베릴로그의 프리머티브 게이트들은 파라미터 설정을 통해서 3가지의 딜레이를 모델링 할 수 있다 3가지는 각각 상승, 하강, 턴오프 딜레이 값이다. y 상승 딜레이는 0, x, z 값에서 1로 변할때 걸리는 시간, 하강 딜레이는 1, x, z 값에서 0로 변할때 걸리는 시간, 턴오프 딜레이는 0, 1, x 값에서 z로 변할때 걸리는 시간이다. #(상승, 하강, 턴오프) name(out, in1, in2, ... ); 형식으로 선언할 수 있다. // #() 안에 수를 적어서 딜레이를 설정함 // 하나만 적으면 상승 하강 턴오프 모두 같은 값이다. and #(10) a1(*); // 두개를 적으면 각각 상승 하강 딜레이다. 턴오프 딜레이는 상승, 하강값 중 작은 값이다 and #(10, 15) a2(*); //..
-
[Verilog][기초문법] 인스턴스 배열카테고리 없음 2022. 1. 5. 22:02
인스턴스 배열은 반복적으로 모듈을 인스턴스화 할 때 유용한 문법이다 wire [3:0] a, b, c; // and 게이트 인스턴스 배열 and and_gate [3:0] (a, b, c); // 위는 아래와 같이 풀어쓸 수 있다 and and_gate0 (a[0], b[0], c[0]); and and_gate1 (a[1], b[1], c[1]); and and_gate2 (a[2], b[2], c[2]); and and_gate3 (a[3], b[3], c[3]); 4개의 and 게이트를 인스턴스했다. (a = b&c) 인스턴스 배열을 선언할 땐 신호들끼리 벡터의 길이가 같아야한다.
-
[Verilog][기초문법] 모듈, 포트개발/Verilog 2022. 1. 5. 21:09
모듈 포트와 연결 모듈의 포트는 기본적으로 3가지 타입으로 정의한다 input 입력, reg 선언 불가능 output 출력, reg 선언가능 inout 입출력, reg 선언 불가능 포트 선언은 2가지 방법이 있다. 포트에 이름을 적고 모듈 내부에 입출력 방향을 정의하는 방법 module test(sum, cout, a, b, cin); output [1:0] sum; output cout; input a, b; input cin; ... endmodule C style, 포트에 이름과 입출력 방향을 동시에 정의하는 방법 module test( output sum, output cout, input a, input b, input cin ); ... endmodule 외부의 신호를 모듈과 연결하는 방법에는..
-
[Verilog][기초문법] 데이터 형개발/Verilog 2022. 1. 3. 23:27
베릴로그는 디지털회로를 설계하기 위한 언어로서 회로의 상태를 표현하기 위해 4가지의 값을 지원한다. 논리값 의미 0 논리적 0, 거짓 1 논리적 1, 참 x 알 수 없는 논리값 z 하이 임피던스, 플로팅 x 는 unknown 또는 don`t care 로 취급할 수 있다. 또한 신호강도를 모델링하기 위한 키워드들을 지원한다. 실제로 쓰이는건 못봤다. 아마 트랜지스터 레벨에서 모델링을 할 때 쓰이는것 같다. 신호강도 형태 supply driving strong driving pull driving large storage weak driving medium storage small storage highz high impedance 아래에서 위로 갈 수록 신호강도가 세지며 서로 다른 강도를 갖는 신호가 충돌..