文章 ID: 000080166 內容類型: 疑難排解 最近查看日期: 2011 年 11 月 15 日

不正確的多個埠位址寬度

環境

    Intel® Quartus® II 訂閱版
BUILT IN - ARTICLE INTRO SECOND COMPONENT

重大問題

描述

針對針對 V 或 Cyclone Arria 的 DDR2 和 DDR3 介面 具有 啟用硬外部記憶體介面 參數的 V 裝置 開啟和多個埠前端寬度,如下所示 表,需要修正規格。

此問題可能導致您的設計在模擬中失敗。這 問題影響到針對硬記憶體的 DDR2 和 DDR3 介面 Arria V 或 Cyclone V 裝置。這個問題將在未來的版本中解決 適用于採用 UniPHY 的 DDR2 和 DDR3 SDRAM 控制器。

需要更正的位址寬度

總記憶體介面寬度

多埠前端寬度需要更正

8

32

-1

8

64

-2

8

128

-3

8

256

-4

16

64

-1

16

128

-2

16

256

-3

32

32

1

32

128

-1

32

256

-2

40

160

-1

40

320

-2

解決方法

此問題的解決方法如下:

  1. 在文字編輯器中,開啟檔案 altera_mem_if_hard_memory_controller_top(arriav/cyclonev).sv
  2. altera_mem_if_hard_memory_controller_top(arriav/cyclonev).sv , 新增下列行之後 // New parameters for HMC
parameter AVL_ADDR_WIDTH_PORT_0 = AVL_ADDR_WIDTH ; parameter AVL_ADDR_WIDTH_PORT_1 = AVL_ADDR_WIDTH ; parameter AVL_ADDR_WIDTH_PORT_2 = AVL_ADDR_WIDTH ; parameter AVL_ADDR_WIDTH_PORT_3 = AVL_ADDR_WIDTH ; parameter AVL_ADDR_WIDTH_PORT_4 = AVL_ADDR_WIDTH ; parameter AVL_ADDR_WIDTH_PORT_5 = AVL_ADDR_WIDTH ;
  • altera_mem_if_hard_memory_controller_top(arriav/cyclonev).sv , 替換 AVL_ADDR_WIDTH 為各自 AVL_ADDR_WIDTH_PORT_# 的 , 例如:
  • 取代 input [AVL_ADDR_WIDTH - 1 : 0] avl_addr_0;

    搭配

input [AVL_ADDR_WIDTH_PORT_0 - 1 : 0] avl_addr_0;
  • altera_mem_if_hard_memory_controller_top(arriav/cyclonev).sv , 評論行自 assign i_avst_cmd_data_0 = i_avst_cmd_data_g[0];
  • 直到

assign avl_size_g[5] = avl_size_5;
  • altera_mem_if_hard_memory_controller_top(arriav/cyclonev).sv , 在上述區段之後立即新增下列行線:
assign i_avst_cmd_data_0 = {{42-AVL_SIZE_WIDTH-34{1\'b0}},avl_size_0,{34-AVL_ADDR_WIDTH_PORT_0-2{1\'b0}},avl_addr_0,avl_write_req_0,avl_read_req_0}; assign i_avst_cmd_data_1 = {{42-AVL_SIZE_WIDTH-34{1\'b0}},avl_size_1,{34-AVL_ADDR_WIDTH_PORT_1-2{1\'b0}},avl_addr_1,avl_write_req_1,avl_read_req_1}; assign i_avst_cmd_data_2 = {{42-AVL_SIZE_WIDTH-34{1\'b0}},avl_size_2,{34-AVL_ADDR_WIDTH_PORT_2-2{1\'b0}},avl_addr_2,avl_write_req_2,avl_read_req_2}; assign i_avst_cmd_data_3 = {{42-AVL_SIZE_WIDTH-34{1\'b0}},avl_size_3,{34-AVL_ADDR_WIDTH_PORT_3-2{1\'b0}},avl_addr_3,avl_write_req_3,avl_read_req_3}; assign i_avst_cmd_data_4 = {{42-AVL_SIZE_WIDTH-34{1\'b0}},avl_size_4,{34-AVL_ADDR_WIDTH_PORT_4-2{1\'b0}},avl_addr_4,avl_write_req_4,avl_read_req_4}; assign i_avst_cmd_data_5 = {{42-AVL_SIZE_WIDTH-34{1\'b0}},avl_size_5,{34-AVL_ADDR_WIDTH_PORT_5-2{1\'b0}},avl_addr_5,avl_write_req_5,avl_read_req_5};
  • altera_mem_if_hard_memory_controller_top(arriav/cyclonev).sv , 評論下列行:
i_avst_cmd_data_g[port_i] = {avl_size_g[port_i],{34-AVL_ADDR_WIDTH-2{1\'b0}},avl_addr_g[port_i],avl_write_req_g[port_i],avl_read_req_g[port_i]};
  • 在所有包裝紙中,可立即啟 altera_mem_if_hard_memory_controller_top(arriav/cyclonev).sv 用 更新每個 avl_addr_ 匯流排寬度,如 遵循:
Replace input wire [21:0] avl_addr_0, // .address

搭配

input wire [21:0] avl_addr_0, // .address

相關產品

本文章適用於 1 產品

Intel® 可程式裝置

1

此頁面上的內容是原始英文內容的人工和電腦翻譯的組合。此內容僅供您方便,僅供一般參考,不應被視為完整或準確。如果本頁面的英文版本與翻譯之間存在任何矛盾,則以英文版本為準。 查看此頁面的英文版本。