2019/12/04
Cyclone IV Module PCB
절반의 성공...MSEL 잘못 픽스했다. ㅠㅠ
MSEL을 모두 GND로 하면 FPGA만 다운로드 가능
SFL을 사용해서 시리얼 플래시로 다운로드 불가능
MSEL을 AS mode로 변경하면 둘 다 가능
푸헷 또 PCB 발주내지 머
2013/11/25
하드코어 MCU여 안녕
간단한 LED 조명 시스템...인데
소프트코어로 NIOS를 써서 FPGA로만 구현해봤다. LED 드라이버는 예전에 만들어둔 MSL2100 보드.
PCB는 간단해져서 좋은데 MCU가 없으니 왜이리 불안하냐...
주요 기능들(LCD, 키 스캔, I2C, GPIO, etc)은 로직으로 구현하고 MCU는 외부 호스트 인터페이스에 집중한다는 컨셉으로 가는중인데, MCU와 로직의 인터페이스가 쉽지가 않네...
I2C나 GPIO는 늘 쓰던거라 별 걱정 없지만 LCD도 쉽지않아...
이게 잘되면 오픈코어 MCU로 가봐야것다.
"FPGA 벤더 인디펜던트 데이 프로젝트"
간만에 오픈코어 홈페이지나 가봐야지
2012/09/03
2012/08/13
2011/04/20
2009/11/25
Xilinx NGDBuild Error
이전에 사용하던 핀 이름을 더 이상 사용하지 않지만 이 에러가 뜬다면...
1. 정말 더이상 사용하지 않는지 확인하라
2. 철자가 정확한지 확인하라
그래도 원인을 모른다면
project 탭의 Cleanup Project Files를 실행하시오.
원문은 http://www.xilinx.com/support/answers/32089.htm
1. 정말 더이상 사용하지 않는지 확인하라
2. 철자가 정확한지 확인하라
그래도 원인을 모른다면
project 탭의 Cleanup Project Files를 실행하시오.
원문은 http://www.xilinx.com/support/answers/32089.htm
2008/07/16
PLL???

위에서 부터 순서대로 50MHz, 100MHz, 10MHz, 180MHz
50MHz 입력으로 100,10,180 MHz를 만들어 낸다.
워메 이런게 있었네...이제 오실레이터 구하러 안돌아댕겨도 되것네.
왜 이좋은걸 이제 알았을꼬.
사이클론3에 내장된 PLL을 구동하기위해 megafunction의 altpll을 사용했다.
megafunction 첨 사용해봤는데, IC 사면 딸려오는 C library 같다고나 할까...어째뜬 첨 써보는데
잘 돌아가니까 기분은 조아.
altpll_reconfig도 있는데
재컴파일 없이 외부 데이터 입력으로 PLL을 재구성 하도록 만들어 놓은거 같다.
문서를 읽어보면 자세히 알겠지만.....
난 소중하니까 필요하면 읽어보기로 한다.
그럼 이만.
2008/07/03
Test VHDL for Memory blocks In Cyclone III 세번째
영상 데이터를 64 line buffer에 저장한 후 출력하면 제일 마지막 64라인이 패널의 꼭대기에 올라가버린다. 이걸 똑바로 맞출려면 HSYNC와 VSYNC 신호를 조정하면 될꺼라고 생각했는데 HSYNC와 VSYNC는 패널 구동에 아무런 영향을 주지 않는다. ㅠㅠ 젝힐
몇일동안 ODCK, HSYNC, VSYNC, DE 신호를 측정하고 이리저리 주물러봤는데
결론은
DE 신호를 어찌 좀 주물러봐야 패널에 출력되는 영상을 64라인씩 밀어 올릴수 있다고 생각된다.
그러니까

이렇게 DE 신호를 입력 받아서 뒤로 밀어버리면 된다 이거지...
끝없는 삽질 끝에 드디어 완성했다.
test_VHDL
출력물도
몇일동안 ODCK, HSYNC, VSYNC, DE 신호를 측정하고 이리저리 주물러봤는데
결론은
DE 신호를 어찌 좀 주물러봐야 패널에 출력되는 영상을 64라인씩 밀어 올릴수 있다고 생각된다.
그러니까

이렇게 DE 신호를 입력 받아서 뒤로 밀어버리면 된다 이거지...
끝없는 삽질 끝에 드디어 완성했다.
test_VHDL
출력물도
2008/06/21
Test VHDL for Memory blocks In Cyclone III 두번째
고작 2% 쓰는 걸로는 성이 차지 않아서 100%에 도전해봤다.
3,981,312 bit를 모조리 다 먹어 치워버리가써.
...
...
...
...
3,981,312 bit / 8 = 497,664 byte
이므로 이 사이즈로 이중 배열을 선언해서 컴파일을 하면...
에러가 난다.
Analysis & Synthesis는 OK. 메모리 사용량이 100%라고 나온다.

근데 Fitter에서 error.
Error: Selected device has 432 RAM location(s) of type M9K. However, the current design needs more than 432 to successfully fit
시발... 백프로 사용량인데 먼 초과...
일단 원인을 생각해보면
1. 계산 미스
2. 배열 첨자
3. 내가 바보거나
4. 윈도의 심각한 오류?
5. 날 엿먹이려는 빅브라더의 음모?
1번과 2번은 아님
계산은 정확했고 배열 첨자도 확인했다.
그럼 문제가 멈니...
Cyclone III handbook의 메모리 블럭 챕터에는
EP3C120의 경우 432개의 M9K 블럭이 있고, 각 블럭은 8,192 메모리 비트를 가진다(패리티 포함하면 9,216 bit)
라고 나온다.
다시 계산해보면
432 * 8192 bit / 8 = 442,368 byte
수정해서 컴파일하면 89%라고 나온다.

답은 3번이고 100% 다 먹어치울순 없었다.
442,368 byte로 1280*1024 해상도의 영상을 64라인씩 메모리 블럭에 저장 후 출력 시키는 test VHDL을 작성해서 돌려봤다.
testVHDL
이건 결과물
64라인씩 영상이 아래로 밀렸다.
그래 이제 함 맞춰보자.
3,981,312 bit를 모조리 다 먹어 치워버리가써.
...
...
...
...
3,981,312 bit / 8 = 497,664 byte
이므로 이 사이즈로 이중 배열을 선언해서 컴파일을 하면...
에러가 난다.
Analysis & Synthesis는 OK. 메모리 사용량이 100%라고 나온다.
근데 Fitter에서 error.
Error: Selected device has 432 RAM location(s) of type M9K. However, the current design needs more than 432 to successfully fit
시발... 백프로 사용량인데 먼 초과...
일단 원인을 생각해보면
1. 계산 미스
2. 배열 첨자
3. 내가 바보거나
4. 윈도의 심각한 오류?
5. 날 엿먹이려는 빅브라더의 음모?
1번과 2번은 아님
계산은 정확했고 배열 첨자도 확인했다.
그럼 문제가 멈니...
Cyclone III handbook의 메모리 블럭 챕터에는
EP3C120의 경우 432개의 M9K 블럭이 있고, 각 블럭은 8,192 메모리 비트를 가진다(패리티 포함하면 9,216 bit)
라고 나온다.
다시 계산해보면
432 * 8192 bit / 8 = 442,368 byte
수정해서 컴파일하면 89%라고 나온다.
답은 3번이고 100% 다 먹어치울순 없었다.
442,368 byte로 1280*1024 해상도의 영상을 64라인씩 메모리 블럭에 저장 후 출력 시키는 test VHDL을 작성해서 돌려봤다.
testVHDL
이건 결과물
64라인씩 영상이 아래로 밀렸다.
그래 이제 함 맞춰보자.
2008/06/17
Test VHDL for Memory blocks In Cyclone III
EP3C120F484에는 3,981,312 bit의 메모리 블럭이 있다는데
앞으로 쓸일 많을거 같으니 함 테스트 해봄.
test VHDL
걍 올리면 들여쓰기가 개판이라서...
test VHDL은
1280*1024 해상도의 DVI 신호를 TFP401A를 통해 RGB 24bit로 받은 후 메모리에 저장하고, 저장된 데이터를 읽어서 DS90C387로 보내주는 역할을 한다.
설명하고 보니 간단한데 금,토,일,월,화 끄윽...5일동안 삽질한 결과로구나...
Flow Summary에서 사용된 메모리 비트를 확인할 수 있다.

이건 결과물
운이 좋으면 스케일러 기능을 메모리 블럭 만으로 만들수도 있...
안돼면 마는거고...
앞으로 쓸일 많을거 같으니 함 테스트 해봄.
test VHDL
걍 올리면 들여쓰기가 개판이라서...
test VHDL은
1280*1024 해상도의 DVI 신호를 TFP401A를 통해 RGB 24bit로 받은 후 메모리에 저장하고, 저장된 데이터를 읽어서 DS90C387로 보내주는 역할을 한다.
설명하고 보니 간단한데 금,토,일,월,화 끄윽...5일동안 삽질한 결과로구나...
Flow Summary에서 사용된 메모리 비트를 확인할 수 있다.

이건 결과물
운이 좋으면 스케일러 기능을 메모리 블럭 만으로 만들수도 있...
안돼면 마는거고...
2008/06/13
2008/06/11
EP3C120F484 Test PCB
2008/06/09
Configuration Data Decompression
싸이클론 III 에서는 컨피규레이션 데이터를 압축해서 공간/시간상 이점을 얻을 수 있다. 다 되는건 아니고 AS와 PS에서만 가능하다고 한다.
압축을 활성화 하는 두가지 방법이 있는데
1. 컴파일러 세팅에서 설정
2. 컴파일된 파일을 변환(sof -> pof)
하는 두가지 방법이라고 한다.
FPGA가 케스케이드 연결된 경우 선택적으로 압축과 비압축을 설정할 수 있다고 한다.
근데 왜???
굳이 머할라고???
그런지는 아직 모르겠네효.
압축을 활성화 하는 두가지 방법이 있는데
1. 컴파일러 세팅에서 설정
2. 컴파일된 파일을 변환(sof -> pof)
하는 두가지 방법이라고 한다.
FPGA가 케스케이드 연결된 경우 선택적으로 압축과 비압축을 설정할 수 있다고 한다.
근데 왜???
굳이 머할라고???
그런지는 아직 모르겠네효.
2008/06/04
EP3C120F484 Configuration Scheme
2008/03/06
2007/11/16
2007/11/11
피드 구독하기:
글 (Atom)


