IT/ASIC | FPGA 2016. 9. 22.
edge detect pulse - 트리거된 이벤트를 알아내 한 클럭 pulse 만들기
머 제목부터 어렵다.정하기가..국어가... 왜 - 시나리오어떤 신호가 '1' 인 상태로 여러 클럭에 걸쳐져 있다.그런데 나는 '0' 에서 '1'로 올라간 이벤트를 알려주는 것처럼 한 번의 사건에 한 클럭만큼의 이벤트 펄스를 만들기를 원한다.해결은 그림으로이렇게 하면 된다. 즉 그림의 OUT 신호를 보고 사용하면 해결~~그림은 남이 그린 것이므로 원본글의 위치를 알려드립니다.보시고 HDL 코드도 필요하다고 생각하시면 해당글에 가셔서 꼭 읽어보세요. http://www.boldport.com/blog/2015/4/3/edge-detect-ad-nauseam 즐~~
IT/ASIC | FPGA 2016. 9. 22.
CDC(Clock Domain Crossing) 설계시 반드시 들어가는 synchronizer
이전글에 이어 하나더, ASIC 설계시에 가장 중요한,실제 합성 후의 이상한 현상이 발생하는 경우 가장 많이 의심하는 이부분 CDC 설계에서 기본적인 것이라 볼 수 있다.그림으로 설명이 가능하다.물론 원본글은 아래 글에 방문하여 전체를 읽어 보는 것이 좋다. https://electronicsnews.com.au/best-design-practices-for-high-capacity-fpga-devices/ 무작정 다른 클럭의 시그널을 보고 사용하는 경우 Meta 상태의 값을 레퍼런스 할 수 있으므로이후 동작을 보장할 수 없다. 경우에 따라 다른 상황이 발생할 수도 있고, 잘 동작할 수도 있다. 운좋게.. 무튼, 그래서 무조건 F/F 2개 정도를 clock domain 사이에 넣어주는 것이 일반적인 기법..
IT/ASIC | FPGA 2016. 9. 22.
Recommended reset synchronization scheme
설계시 참고할 내용이 정말 많은 필수 페이지 일단 그중에서 필요한 내용은 바로 이것.원본글은 여기다. https://electronicsnews.com.au/best-design-practices-for-high-capacity-fpga-devices/ 이 그림이 뜻하는 바는 알고 가자. 리셋상태로 가는 것은 언제든지 async 한 조건으로 가고리셋에서 풀리는 경우에는 내부 시스템 클럭에 맞추어서 풀리도록 한다.여러 F/F 동작에 안정성을 부여할 수 있다. 즐
IT/ASIC | FPGA 2016. 7. 19.
Design compiler 관련 글 - Synopsys 합성 툴
Design compiler 관련 글 - Synopsys 합성 툴여기 저기 참 많이 있겠지만, 몇몇개 찾아서 본 자료들만 링크라도 모아 RTL 합성에 관련된 기본적인 내용이 잘 정리되어 있다. 아래 2개의 글만 숙지해도 문제가 없을 듯.Synthesis ABCs Part 1 - http://docslide.us/documents/syn-abc-part1.htmlSynthesis ABCs Part 2 - http://docslide.us/documents/syn-abc-part2.html그리고, 어렵게 찾아두는 한글 자료들. 열심히 하신 분들이 많이 계시네요. Design Compiler 정리 (http://blog.naver.com/PostList.nhn?blogId=beahey&from=postList..
IT/ASIC | FPGA 2015. 12. 29.
Simulating verilog VHDL using Synopsys VCS - 칩 설계 검증 툴
Synopsys VCS 사용 - HDL compile & simulation, 칩 설계 검증 아래 2가지 원본 글을 가지고 아래와 같이 간단한 tutorial을 만들어 보았다. 한글이 곳곳에 보이도록 했다. 그래도 원본을 감상하시는 예의를 갖추도록.정리는 하고 있는 중인데, 자료는 쓸만해서 그냥 올리니 대충 이해해 주시길. (via http://www.vlsiip.com/vcs/)(via http://salinasv.blogspot.kr/2011/05/simulating-mixed-language-hdl-using-vcs.html) VCS에 관한 간단한 사용법 소개. VCS is 3 step process 3단계로 구성된다.Compile/Analysis1차 간단한 문법 분석, vhdlan/vlogan 명..
IT 2014. 7. 24.
Gate Level Simulations - "X"가 막나와~~
기술관련 자료는 따로 옮겨서 구성하기로..아래 글은 여기 => http://techcafe.tistory.com/45 를 참고해 주세요. 일단 글은 남겨둠. 문제는 머냐..잘 정리해둔 곳에서 가져와보자..아래글 참고 출처 : Synchronizer 시뮬레이션 문제 사실, metastable을 피하는 방법은 예전에 한번 posting한 적이 있는데요. Metastable을 피하는 가장 머리가 편한 방법은 2개의 F/F을 직렬로 사용하는 2-flop 방법입니다. ...그런데, 1-flop이던 2-flop이던 F/F을 이용하여 동기화기(synchronizer)를 만들고 이 회로에 대한 타이밍 시뮬레이션 할 때, 동기화기로 사용한 F/F이 setup/hold timing을 만족하지 못하는 경우 F/F의 출력이 ..
IT 2014. 7. 18.
Verilog 배열관련 정리
참고 : http://blog.naver.com/beahey/90192889480 배열 선언은reg [7:0] a[3];이렇게 한다. 앞쪽의 "[7:0]"는 배열을 표현보다는 버스의 비트를 나타내고,배열을 뒤쪽의 "[3]" 으로 보고 이해하는 것이 쉽다. 즉 위의 예는 8비트짜리 배열 3개을 가지고 있다는 의미 또한 중요한 것은 포트로 뽑아낼 수가 없다는 엄청 불편한 진실..즉 module의 input/output으로 쓰기 곤란하다는..구체적인 예는 위 참고 사이트 참조 짤은 "Array" ㅋ array by OiMax
IT 2014. 7. 18.
ARM SoC - AHB Default Slave..빈공간에 놓여진 모듈
ARM SoC 개발 중 버스나 Decoder에 보면 default slave 가 있다. 머냐..메모리 맵상에 할당되지 않은 주소(빈공간)를 접근하는 경우 활성화 되는 모듈이다.이름 그대로 디폴트..역할은 단순하다. HREADYOUT은 물론 잘 띄워줘야 하고, 읽기든 쓰기든 끝이 나게 하려면 꼭 띄워줘야하고또 하나, HRESP에 에러를 띄워주는 것. 왜냐면 여기는 빈공간이니까~~ http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/ka3445.htmlGeneral: What is a default slave?Applies to: AHBAnswerIf the memory map of a system does not define the full ..
IT 2014. 7. 18.
[verilog] `timescale 1ns/10ps 의미
이것도 검색으로 펌질, 여타 설명이 필요없는 간결한 자료`timescale 1ns/10ps앞에 숫자는 해당 파일내에서 쓰이는 숫자들의 단위를 나타냄..즉 #2 이렇게 쓰여있다면 2ns를 나타냄뒤의 숫자는 시뮬레이터에서 많이 쓰일 것 같은데 코딩에서는 별 효과가..무튼 소수점을 허용하려면 어디까지 해야할까를 나타내야 하는데 그 때 쓰이는 최소 단위설명은 아래 참고. [출처] [verilog] timescale에 대하여|작성자 j0hnch01[출처] [verilog] timescale에 대하여|작성자 j0hnch01 assign #5 foo = tiger ; 이 문장을 가만히 보면 단위가 없습니다. '5'의 의미는 무었일까요? ...여기서 '5'는 5ns가 될 수도 있지만, 5us, 5ms 심지어는 5sec..
IT 2014. 7. 18.
AHB slave 코드 조각 - Byte access
AMBA bus를 사용하는 경우, 바이트별 접근을 위해 판단하는 시그널 생성 코드 (참고용, 책임 못짐 ^^) // Generate byte access from AHB busassign byte0_access = (HSIZE[1] | ((HADDR[1]==1'b0) & HSIZE[0]) | (HADDR[1:0]==2'b00));assign byte1_access = (HSIZE[1] | ((HADDR[1]==1'b0) & HSIZE[0]) | (HADDR[1:0]==2'b01));assign byte2_access = (HSIZE[1] | ((HADDR[1]==1'b1) & HSIZE[0]) | (HADDR[1:0]==2'b10));assign byte3_access = (HSIZE[1] | ((HAD..
IT 2014. 7. 17.
Xilinx NGC netlist file 변환 - Verilog top 파일 만들기
.ngc 파일에서 vhdl, verilog top 파일 만들기 ISE를 쓰는 경우, ngc파일을 가지고 있어 사용하는 경우 top파일이 필요하기도 하다.간단하게 ngc에서 top 파일 만드는 방법http://www.fpgadeveloper.com/2011/08/how-to-read-an-ngc-netlist-file.html To convert the netlist into VHDL type “netgen -ofmt vhdl filename.ngc“. Netgen will create a filename.vhd file.To convert the netlist into Verilog type “netgen -ofmt verilog filename.ngc“. Netgen will create a filen..