2013-05-01 5 views
0

나는 Xilinx의 Verilog로 작성된 Nexys 3 FPGA의 프로젝트에서 일부 파일 입출력 (FPGA를 방금 프로그래밍 한 컴퓨터)을 필요로한다. Adept 프로그램 사용 , FPGA 메모리 중 하나의 특정 주소에 쓸 수 있습니다. 동일한 메모리 공간에있는 특정 주소에서 읽을 수도 있습니다.Verilog 메모리 주소에 액세스

내 문제의 완벽한 해결책이 될 수 있습니다.하지만 Verilog를 사용하여 이러한 추억에 어떻게 접근합니까?

예 : 상태 S2에서 0000 위치의 메모리를 읽으려고합니다. (단계 S1에서 여전히 Adept를 사용하여로드했습니다.)이 데이터에 액세스하고 처리 한 다음 메모리의 다른 부분을 다시 작성 하시겠습니까? 미리 감사드립니다.

답변

1

내가 기억 하듯이, Adept는 일반적인 FPGA 로직의 "외부"에서 작동하여 JTAG을 통해 RAM에 액세스합니다. 그것은 아마 하나의 큰 "덩어리"로 그들을 매핑합니다 - 당신은 어떤 순서로 RAM에 액세스 할 수 있는지 확인하기 위해 문서를 읽어야 할 것입니다.

Verilog에서 액세스하려는 경우 먼저 인스턴스를 만들거나 (즉, "이 같은 램 블록 사용"이라는 코드를 직접 작성해야합니다.) 또는 RAM 블록을 추론해야합니다. RAM 시계의 동작 - 도구가이를 파악합니다). 신디사이저의 문서를 읽으면 두 가지 접근법을 모두 설명 할 것입니다.

그러면 논리가 RAM의 데이터, 주소 및 제어 라인을 읽고 쓰고 제어 할 수 있습니다.

일단 RAM을 만들고 RAM의 많은 블록 중 Adept로 쓰고있는 것이 무엇인지 알고 있다면 FPGA 빌드 도구가 RAM 블록을 올바른 위치에 배치하여 사용자가 Adept를 사용하여 오른쪽 액세스. FPGA를 만들 때마다 또는 다른 곳에서 RAM에 액세스하도록 Adept 설정을 변경하는 등의 일을 할 수 있습니다 ... 이것이 FPGA와 comunicate하는 가장 좋은 방법입니까?

+0

덕분에, 나는 내 코드에서 RAM을 설정하는 것이 아니라 복잡한 일을해야 할 것입니다 생각,하지만 난 숙련자 수동으로 메모리 쓰기와의 Verilog 사이의 주소를 좌표 어떻게 : 당신은 여기에 파일을 찾을 수 있습니다 합성 된 메모리 액세스? – Lendo92

+0

나는 메모리에 액세스하는 데 능숙하지는 않지만 Verilog 코드처럼 메모리에 액세스한다고 가정하고 위치는 동일해야합니다. – FarhadA

1

보드에 쓰는 메모리의 종류가 다릅니다. FPGA 안의 메모리 나 보드의 메모리 중 하나에 쓰고 있습니까?

  • 16Mbyte 마이크론 휴대 RAM
  • 16Mbyte 마이크론 병렬 PCM

일부가 일부가 접근하기 쉬운

  • 16Mbyte 마이크론 쿼드 모드 SPI의 PCM : Nexyx 3 보드에이 3 기억을 가지고 더 어려워서, 어느쪽에 접근하고 싶은지 명확히한다면, 당신의 질문에 대답하기가 더 쉬울 것입니다.

    당신 Nexys 2에서 예제 파일의 도움을 찾을 어쩌면 수 : 모두 RAM 및 플래시 메모리에 대한 액세스를 허용, I/O 멀티플렉서를 통해 BSB 공유 버스에 연결하는 방법을 보여줍니다

    "EDK 프로젝트 Nexys2-500에서 EDK 11을 사용하여 제작되었습니다. " http://www.robotshop.com/content/ZIP/nexys2-500-edk-11-ram-flash-nexys2-500k.zip

  • +1

    감사합니다, 나는 16MB RAM에 쓰고 있다고 믿지만, Adept이 다른 것들에 쓰기 옵션을 가지고 있다고하더라도 (코드에서 구현하기가 더 쉽다면). 샘플 프로젝트는 매우 유용합니다. 그것으로부터 해결책을 찾으십시오. – Lendo92

    관련 문제