verilog (8) 썸네일형 리스트형 [디지털 설계 및 실험] Verilog 기본 vol9. Useful Modeling Techniques 💻 assign and deassign procedural continuous assignment는 net에 값을 할당하는 구문을 말한다. wire assign a=b+c; 이런구문이 예시이다. 레지스터 값을 잠시 오버라이드 해서 쓰고 싶다면 assign을 사용하면 된다. 그리고, deassign을 쓰면 원래값으로 다시 되돌아온다. 이것은 reg타입에만 쓸 수 있다. 💻 force and release 위의 말했던 assign and deassign과 비슷한 효과를 낸다. 하지만 reg와 net 타입 둘다 오버라이드 하는데 사용될 수 있으므로 좀 더 많이쓰이고, stimulus에서 특히 사용이 많이 되어진다. 디자인 블록 안에 이것들을 사용하는 것은 추천되어지는 방법은 아니다. 예시를 보자. force를.. [디지털 설계 및 실험] 8. tasks and functions 지금까지 배운것으로만 해도 Verilog 다 할 수 있다.(수정/내가 behavioral modeling 포스팅을 안했었구나..) 지금부터는 추가적인 기능들에 대해서 포스팅 하겠다. 💻 Function vs Task 둘다 C언어에서 함수와 비슷한 기능을 수행한다. 둘다 모듈안에 정의되어야 하고 해당 모듈 안에서만 쓰인다는 공통점이 있다. 차이점을 봐보자. Function Function은 다른 Function은 이용할수 있지만, task를 이용할 수는 없다. 0의 시뮬레이션 시간에 실행된다. 어떠한 delay, event, timing control statement도 포함해서는 안된다. 적어도 하나의 입력인자가 있어야한다. 항상 하나의 리턴값만을 반환한다. output이나 inout 인자를 가질수 없다.. [디지털 설계 및 실험] Verilog 외전 이번 포스팅에서는 내가 사용해보다 보니 헷갈리는 Verilog에서 숫자 표현 방식을 적어보겠다. HDL이다 보니 10진수 이외의 2,8,16을 상당수 사용하는 부분이 보였다. 💻 Number Specification in Verilog 사이즈를 표시한 수 : ' ('d/'D, 'h/'H ,'b/B', 'o/'O) 4'b1111 //This is a 4-bit binary number 12'habc // This is a 12-bit hexadecimal number 16'd255 // This is a 16-bit decimal number. 사이즈 미표기 수 : 칸이 없고 10진수를 표현한다면 도 생략이 가능하다. 23456 // This is a 32-bit decimal number by defau.. [디지털 설계 및 실험] Verilog 기본 vol.5 Gate-Level Modeling 오랜만에 올리는 Verilog! 베릴로그 조 아 먼저 Gate-level Modeling에 대해서 알아보자. 💻 Gate level Modeling 게이트 레벨 모델링이란 앞서 다뤘던 추상화의 4단계중 거의 가장 낮은 단계이다. 제일 낮은 스위치 수준 추상화가 거의 사용되지 않기때문이다. Multiplexer와 Full Adder와 같이 설계에서 가장 낮은 수준의 모듈을 구현하는 데 사용된다. 베릴로그에는 모든 기본 게이트가 내장되어있다. 그 기본 게이트들에는 무엇이 있는지 확인해보자. 💻 AND/OR Gates 베릴로그는 기본 게이트들은 내부적으로 구현을 해놓은 상태이다. AND/OR도 그에 포함된다. 모듈처럼 인스턴스화되며, 모듈 정의가 필요하지 않는다. 복수의 스칼라 input들이 들어가면 하나의 .. [디지털 설계 및 실험] 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언어와 구성이 상당히 비슷하게 되있는 것을 알 수 있다... 이전 1 다음