ID de l'article: 000080166 Type de contenu: Dépannage Dernière révision: 15/11/2011

Largeur d’adresse de plusieurs ports incorrecte

Environnement

    Édition d'abonnement Intel® Quartus® II
BUILT IN - ARTICLE INTRO SECOND COMPONENT

Problème critique

Descriptif

Pour les interfaces DDR2 et DDR3 ciblant Arria V ou Cyclone Appareils V avec le paramètre Activer l’interface de mémoire externe dure largeurs de l’extrémité avant de plusieurs ports activées comme indiqué dans les éléments suivants tableau, un facteur de correction est nécessaire.

Ce problème peut entraîner une panne de conception dans la simulation. Ce Le problème affecte les interfaces DDR2 et DDR3 ciblant la mémoire dure ressources d’interface sur Arria V ou Cyclone les périphériques V. Ce problème sera résolu dans une version ultérieure des contrôleurs SDRAM DDR2 et DDR3 avec UniPHY.

Largeurs d’adresse nécessitant une correction

Largeur totale de l’interface mémoire

Largeur avant multiportCorrection requise

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

Résolution

La solution à ce problème est la suivante :

  1. Dans un éditeur de texte, ouvrez le fichier altera_mem_if_hard_memory_controller_top(arriav/cyclonev).sv .
  2. En altera_mem_if_hard_memory_controller_top(arriav/cyclonev).sv , ajoutez les lignes suivantes après // 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 ;
  • En altera_mem_if_hard_memory_controller_top(arriav/cyclonev).sv , remplacer AVL_ADDR_WIDTH par les cartes correspondantes, AVL_ADDR_WIDTH_PORT_# par exemple :
  • Remplacer input [AVL_ADDR_WIDTH - 1 : 0] avl_addr_0;

    Avec

input [AVL_ADDR_WIDTH_PORT_0 - 1 : 0] avl_addr_0;
  • En altera_mem_if_hard_memory_controller_top(arriav/cyclonev).sv , commentez les lignes de assign i_avst_cmd_data_0 = i_avst_cmd_data_g[0];
  • Jusqu'à

assign avl_size_g[5] = avl_size_5;
  • En altera_mem_if_hard_memory_controller_top(arriav/cyclonev).sv , ajoutez les lignes suivantes immédiatement après la section ci-dessus :
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};
  • En altera_mem_if_hard_memory_controller_top(arriav/cyclonev).sv , commentez la ligne suivante :
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]};
  • Dans tous les emballages qui accélèrent altera_mem_if_hard_memory_controller_top(arriav/cyclonev).sv l’emballage, mettre à jour la largeur du bus pour chaque avl_addr_ bus, comme Suit:
Replace input wire [21:0] avl_addr_0, // .address

Avec

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

Produits associés

Cet article concerne 1 produits

Circuits programmables Intel®

1

Le contenu de cette page est une combinaison de traduction humaine et informatique du contenu original en anglais. Ce contenu vous est fourni pour votre commodité et à titre informatif seulement et ne saurait être totalement exact ou complet. En cas de contradiction entre la version anglaise de cette page et la traduction, c’est la version anglaise qui prévaut. Afficher la version anglaise de cette page.