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 ISE 에서 ngc 파일 사용하기
쉽다. 특정 IP나 module에 대한 합성된 ngc 파일을 가지고 있다면, ISE project에 간단하게 넣어서 사용할 수 있다. 더 간단할 수 있는데 툴이 약간 신경을 덜 써주는 것 같기도 하다. (그냥 ngc 파일만 add project 하면 되련만 ㅎ) 인터넷을 검색하면 아래의 글이 나온다. 여기가 정답인듯How-do-I-use-a-NGC-file-toanother-ISE-project그래도 간단히 정리해 보면, 그 다음 프로젝트 폴더에 해당 ngc파일을 복사해 둔다. (다른 폴더에 해도 된다. 그럼 아래 그림에서 해당 Path를 지정해 주면 된다.) 1. 일단 ngc 모듈의 이름을 동일하게 가진 빈파일을 하나 만들어야 한다. 여기서는 Black box로 표현하고 있다. 예제를 간단히 만들면 m..
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..
IT 2014. 7. 17.
Nexys™3 Spartan-6 FPGA Board
제품 링크 : http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,400,897&Prod=NEXYS3FPGA가 조금 작아서, 이정도 레벨에는 간단하게 ARM Slave Peri 정도 테스트가 가능하겠다.보통 Xilinx에서 slice 로 gate count를 표현을 해놓으니 감이 없어서 간단하게 tm으로 적어둔다. UART, PWM, I2C, SPI 머 이런 인터페이스 블럭은 올려서 해 볼 만한 보드다운로드 툴이 따로 제공되니 다른 고민은 좀 덜하고 설계에 집중가능해당 홈페이지에서 필요한 자료 몇개 링크 정보 가져와서 저장5/31/11 Nexys 3 schematicsDownload1/21/14 Nexys 3 reference manualDownload3..
IT 2014. 7. 17.
AHB 버스 사용시에 Byte alignment
Microsemi Application note 에 있는 그림을 잘라 가져온다. 약간 헷갈릴 수 있는데, 그림으로 잘 그려두었다.기본이 4바이트(워드라고 부른다)로 동작을 하니 바이트 동작을 하는 경우 alignment가 신경 쓰인다. 그냥 콱 4바이트 전용으로 동작하면 좋으련만 녹록치 않다 세상은. ^^그림을 보면 이해가 쏙, HADDR의 하위 2비트를 옵셋으로 사용하고, HSIZE가 동작 단위이다.당연히 HSIZE="00" 인 경우 바이트 동작이므로 4가지의 경우가 생기고HSIZE="01" 인 경우 2바이트 단위이므로 2가지의 경우가 생긴다. (상상일 수 있지만, HADDR[1:0] = "00" 이나 "01" 이라도 같은 동작일 듯 하다. 상위비트로 구분할 듯)그리고, HSIZE = "10" 인 경우..
IT 2014. 7. 17.
mbed 소개자료
ARM 에서 밀고 있는 무료 온라인 컴파일 환경사이트 주소는 http://mbed.org 이다.요즘 플랫폼도 많고, 사용자도 많아진 듯. NXP, ST, Freescale 어떤 칩을 쓰던 쉽게 컴파일하고 테스트할 수 있는 환경이다.난 간단한 "Hello World" 수준의 프로그램밖엔 못해봤지만.많이 자동화 되어 있고, 라이브러리도 많이 있다. 한글자료로 찾아보니 거의 하나밖에는 없네..그래도 복사해서 소개 출처 : http://wiki.vctec.co.kr/devboard/mbed 하위 페이지 나열[ARM mbed 강좌] 01. mbed 소개[ARM mbed 강좌] 02. mbed 구입, 유저등록, 기본테스트[ARM mbed 강좌] 03. mbed 소스작성, 컴파일, 업로드[ARM mbed 강좌] 04..
IT 2012. 4. 17.
set_false_path / set_case_analysis
머 간단하게 정리하면,set_false_path means that particular path will not be considered for timing analysis. 즉 "타이밍 체크를 하지말아라" 라고 알려주는 구문,대부분, reset path 와 clock path 에 쓰여진다.그리고 multi clock을 사용하는 곳에서는 각 clock들 사이의 신호 교환 부분은 대부분 false path로 지정해야 한다.(아마, 설계에 sync logic은 들어가 있을 것으로 확신 ^^) source from http://lib.dicder.com/synthesis/2010/0615/228.html A false path can also be a path cross asynchronous clock do..
IT 2012. 4. 12.
Gate Count 계산 - SoC, ASIC, ASSP
기본적으로 면적에서 NAND2 gate 면적으로 나누어서 예측치를 구한다.정답이 아닐 수도 있지만 여러군데 서치하니 이렇게 쓰네~~검색 여러군데 또 하지말고, 일단 젤 맘에 드는 거 복사해두고.. 원본 : How the gate count of a design is determined? To get the equivalent gate area in Design compiler need to add two comamnds in TCl script. 1. First to get the total area of your design, use report_area. 2. Then divide this area by the area for a 2-input NAND gate in your technology li..
