FGPA_Verilog_VHDL/NIOS의 고수가되자

내가 하는 NIOS core SOPC와 실제 핀 mapping

LonleyEngineer 2008. 4. 24. 19:29
반응형

맞는지 안맞는지도 모르고 일단 되면 한다!!

 

SOPC 빌더에서 SOPC를 생성하면 쿼터스에 SOPC에서 생성했던 이름과 같은 vhd/v 파일이 생성된다.

 

만일 내가 NIOS 라고 SOPC의 이름을 지었다면 NIOS.vhd(VHDL), NIOS.v(verilog) 중의 1개 파일이 생성될 것이다.

 

VHDL을 예로 들면

쿼터스에서 NIOS.vhd 파일을 열어보면 내가 SOPC 빌더에서 추가했던 peripheral과 component 들이

명시되어 있고 이녀석이 NIOS core와 어떻게 연결되는지 명세 되어 있다.

나같은 경우 DE2-70에 있는 것을 따라했더니 20000라인 정도의 코드가 생성되었다.

 

이중에서

 

entity nios is ~~~~~~~~ end nios; 가 내가 필요한 부분이다.

 

왜나하면 나중에 NIOS외에 다른 유저 로직까지 FPGA 안에 넣으려면 NIOS SOPC도 symbol Block으로 만들어야

하는데 거기서 외형적으로 보이는 부분이 바로 entity nios is ~~~~~~~~ end nios; 부분이기 때문이다.

 

하지만 이녀석들이 보면 핀 이름이 아주 기억하기 힘들다.

낯선 이름들이라 기억하기 힘들어서 쿼터스에서 하나의 top level entity를 만들고 nios entity를 component 로 불러와서 de2에서 사용하는 iCLK_50, oLEDR 등의 이름으로 바꿔서 쓰면 좀 더 편한 것 같다.

 

그리고 중요한것... 외형의 핀 이름을 DE2-70 보드의 DE2_70_pin_assignments.csv   파일의 내용에 있는 핀 이름과 같게 해주면 쿼터스에서 assignments->import assignments 에서 DE2_70_pin_assignments.csv

만 불러주면 핀은 자동적으로 보드에 맞게 할당이 되기 때문이다.

 

이래 저래 귀찮은 과정이지만 나는 일일이 pin 이름을 쳐서 할당하는 방법보다는 편한 것 같다^^;

 

또하나의 방법은...

 

nios entity를 symbol block으로 만들고 *.bdf file에서 generate pin for symbol block 을 눌러 in/out pin을 연결하고 이름을 DE2_70_pin_assignments.csv 파일에 있는 핀 이름과 같게 해줘도 된다.

 

이도 저도 귀찮다면...

그냥 일일이 핀 이름을 쳐서 넣으면 되는 것이다.^^

 

반응형