Logotipo XILINX

Distribuidor de FPGA XILINX 63234 END

Produto-distribuidor-XILINX-63234-END-FPGA

Nota importante: Este PDF descargable dun rexistro de resposta ofrécese para mellorar a súa usabilidade e lexibilidade. É importante ter en conta que Answer Records son Webcontido baseado en que se actualiza con frecuencia a medida que se dispoña de nova información. Lembramos que debes visitar o soporte técnico de Xilinx Websitio e review (Xilinx Answer 63234) para obter a última versión desta resposta.

Introdución

Debido á forma en que están deseñadas as memorias DDR2 e DDR3 e ao deseño do controlador da serie MIG 7, o rendemento non é sinxelo. Require a comprensión de varios parámetros de temporización Jedec e da arquitectura do controlador, e terás que executar simulacións para obter as estimacións. O principio xeral para determinar o rendemento é o mesmo, pero este documento ofrece unha forma sinxela de obter eficiencia usando o exemplo MIG.ampdeseño coa axuda do banco de probas e estímulos files adxunto aquí.

Ancho de banda eficaz
O bus de datos DRAM só alcanza o ancho de banda case máximo durante as ráfagas de lectura e escritura, e a súa sobrecarga reduce a taxa de datos efectiva.

XILINX-63234-END-FPGA-Distribuidor-fig-36

Uns exampmenos de gastos xerais son

  • tempo de precarga de acceso ás filas do mesmo banco (o enderezo de acceso non está no mesmo acceso á páxina de fila)
  • tempo de recuperación de escritura para cambiar de acceso de escritura a lectura
  • tempo de resposta do bus para cambiar de acceso de lectura a escritura

Ciclos de reloxo que transfiren datos

  • Eficiencia (%) = ———————————————-

Ciclos de reloxo totais
Ancho de banda efectivo = Ancho de banda máximo * Eficiencia

Xeración de deseño MIG

  • Consulte UG586 Capítulo 1 para obter detalles paso a paso sobre MIG IP e exampa xeración de deseño.
  • Antes de executar a simulación de rendemento da serie MIG 7, faga o seguinte para asegurarse de que o seu entorno de simulación é correcto.
  • Abrir o MIG exampDeseña e mapea as bibliotecas adecuadas, executa a simulación e asegúrate de que podes ver a mensaxe "proba superada" na transcrición.
  • Para demostrar o fluxo, xerei un enderezo IP MIG para xc7vx690tffg1761-2 e invoquei o exampdeseño.
  • Dúas cousas que hai que ter en conta son os bits de enderezos de memoria e a selección de asignación de enderezos de memoria.
  • Por exampÉ dicir, seleccionei MT41J128M8XX-125 nas opcións despregables das pezas de memoria.XILINX-63234-END-FPGA-Distribuidor-fig- (1)

Para a parte de memoria seleccionada da Figura-1, fila = 14, columna = 10 e banco = 3, polo que app_addr_width = fila + columna + banco + rango = 28

XILINX-63234-END-FPGA-Distribuidor-fig- (2)

Podes seleccionar BANK_ROW_COLUMN ou BANK_COLUMN.
Deixei a columna ROW BANK, que é a asignación de enderezos predeterminada.

Example design Simulación con banco de probas sintetizables

  • En Configuración de simulación, selecciona QuestaSim/ModelSim Simulator e navega ata a localización das bibliotecas compiladas.
  • Para obter máis detalles sobre como sinalar á ruta de instalación de ferramentas de terceiros, seleccionar o simulador de destino e compilar e mapear bibliotecas, podes consultar a Guía do usuario de Vivado Design Suite (UG900) Logic Simulation.XILINX-63234-END-FPGA-Distribuidor-fig- (3)

Simula a GUI (fai clic na lapela Executar simulación no xestor de proxectos) e asegúrate de ver a mensaxe "proba superada" na transcrición.

Modificacións RTL de simulación de rendemento

  1. Fai clic co botón dereito na lapela de fontes, selecciona "Engadir ou crear fontes de simulación" e vai ao ficheiro mig7_perfsim_traffic_generator.sv. file e fai clic en rematar para engadilo.
  2. Fai clic co botón dereito na lapela de fontes, selecciona “Engadir ou crear fontes de simulación”, vai a perfsim_stimulus.txt e fai clic en Finalizar engadindo.
  3. Comenta o exampinstanciación le_top no sim_tb_top.v file.
  4. Engade as seguintes liñas RTL a sim_tb_top,vXILINX-63234-END-FPGA-Distribuidor-fig- (4)XILINX-63234-END-FPGA-Distribuidor-fig- (5)XILINX-63234-END-FPGA-Distribuidor-fig- (6)XILINX-63234-END-FPGA-Distribuidor-fig- (7)XILINX-63234-END-FPGA-Distribuidor-fig- (8)
  5. Modifica APP_ADDR_WIDTH, APP_DATA_WIDTH, RANK_WIDTH, H e BANK_WIDTH segundo a túa selección da parte da memoria. Os valores pódense obter do ficheiro _mig.v file.
  6. O nome de instanciación mig_7series_0_mig resaltado en amarelo pode variar segundo o nome do compoñente durante a creación do enderezo IP.n. Verifique se escolleu un nome diferente e cámbieo segundo corresponda.XILINX-63234-END-FPGA-Distribuidor-fig- (9)
  7. Unha vez xerado o enderezo IP, abre o ficheiro _mig.v. file e comprobar se hai algunha variación nos nomes dos sinais LHS e corrixila.
  8. app_sr_req, app_ref_req e app_zq_req deberían inicializarse a 0.
  9. Como example_top.v está comentado e é novo filese engaden s, probablemente verás un "?" xunto a mig_7series_0_mig.v file baixo fontes de simulación.
  10. Para mapear o correcto file, fai clic co botón dereito en mig_7series_0_mig.v, selecciona “Engadir fontes” e navega ata /mig_7series_0_example.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl e engade mig_7series_0_mig_sim.v file.
  11. Se ves "?" para o subxacente files, engade todos os RTL files nos cartafoles clocking, controller, ip_top, phy e UI.XILINX-63234-END-FPGA-Distribuidor-fig- (10)
  12. Unha vez feitos os cambios RTL e todo o necesario fileengádense ás fontes de simulación, a xerarquía debería ser similar á da figura 5.
  13. O fileOs s destacados en vermello son novos engadidos e espérase un "?" nos módulos relacionados con ECC xa que a configuración de memoria seleccionada ten a opción ECC desactivada.

Estímulo File Descrición

Cada patrón de estímulo ten 48 bits e o formato descríbese nas figuras 6-1 a 6-4.

XILINX-63234-END-FPGA-Distribuidor-fig- (11)

Codificación de enderezos (enderezo [35:0])
O enderezo está codificado no estímulo segundo a Figura 7-1 a Figura 7-6. Todos os campos de enderezo deben introducirse en formato hexadecimal.

Todos os campos de enderezo teñen un ancho divisible por catro para introducilos no formato hexadecimal. O banco de probas só envía os bits necesarios dun campo de enderezo ao controlador de memoria. Por exemplo,ampÉ dicir, nunha configuración de oito bancos, só se envían os bits de banco [2:0] ao controlador de memoria e os bits restantes ignóranse. Os bits adicionais para un campo de enderezo ofrécense para que introduzas o enderezo nun formato hexadecimal. Debes confirmar que o valor introducido corresponde ao ancho dunha configuración determinada.

XILINX-63234-END-FPGA-Distribuidor-fig- (12)

  • Enderezo de columna (Columna[11:0]): o enderezo de columna no estímulo proporciónase cun máximo de 12 bits, pero cómpre enderezar isto segundo o parámetro de ancho de columna establecido no deseño.
  • Enderezo de fila (Fila[15:0]): o enderezo de fila no estímulo ofrécese cun máximo de 16 bits, pero cómpre enderezar
  • Isto baséase no parámetro de ancho de fila establecido no teu deseño.
  • Enderezo do banco (Banco[3:0]): o enderezo do banco no estímulo ofrécese cun máximo de catro bits, pero cómpre enderezalo segundo o parámetro de ancho do banco establecido no deseño.
  • Enderezo de clasificación (Clasificación[3:0]): o enderezo de clasificación no estímulo ofrécese ata un máximo de catro bits, pero cómpre enderezalo segundo o parámetro de ancho de clasificación establecido no deseño.
  • O enderezo compóñase en función do parámetro MEM_ADDR_ORDER de nivel superior e envíase á interface de usuario.

Repetición de comandos (Repetición de comandos [7:0])

  • A conta de repeticións de comandos é o número de veces que se repite o comando respectivo na interface de usuario. O enderezo para cada repetición increméntase en 8. A conta máxima de repeticións é 128.
  • O banco de probas non comproba o límite da columna e realiza unha operación de regulación se se alcanza o límite máximo da columna durante os incrementos.
  • Os 128 comandos enchen a páxina. Para calquera enderezo de columna que non sexa 0, a conta de repeticións de 128 acaba cruzándose.
  • O límite da columna axústase ao inicio do enderezo da columna.

Utilización do bus

A utilización do bus calcúlase na interface de usuario, tendo en conta o número total de lecturas e escrituras, e utilízase a seguinte ecuación:

XILINX-63234-END-FPGA-Distribuidor-fig- (13)

  • BL8 leva catro ciclos de reloxo de memoria
  • Fin_do_estímulo é o momento no que se executan todos os comandos.
  • calib_done é o momento no que se realiza a calibración.

Example Patróns
Estes exampOs ficheiros baséanse no MEM_ADDR_ORDER establecido en BANK_ROW_COLUMN.

Patrón de lectura único
00_0_2_000F_00A_1: este patrón é unha lectura única da 10a columna, 15a fila e o segundo banco.

XILINX-63234-END-FPGA-Distribuidor-fig- (14)

Patrón de escritura único
00_0_1_0040_010_0: este patrón é unha única escritura na columna 32, fila 128 e no primeiro banco.

XILINX-63234-END-FPGA-Distribuidor-fig- (15)

Escritura única e lectura ao mesmo enderezo

  • 00_0_2_000F_00A_0: este patrón é unha única escritura na décima columna, na quinta fila e no segundo banco.
  • 00_0_2_000F_00A_1: este patrón é unha lectura única da 10ª columna, da 15ª fila e do segundo banco.XILINX-63234-END-FPGA-Distribuidor-fig- (16)

Varias escrituras e lecturas co mesmo enderezo

  • 0A_0_0_0010_000_0: isto corresponde a 10 escrituras con enderezos que comezan de 0 a 80, que se poden ver na columna.XILINX-63234-END-FPGA-Distribuidor-fig- (17)
  • 0A_0_0_0010_000_1: isto corresponde a 10 lecturas con enderezos que comezan de 0 a 8,0, que se poden ver na columna.XILINX-63a234-END-FPGA-Distribuidor-fig- (18)

Axuste de páxina durante as escrituras
0A_0_2_000F_3F8_0: isto corresponde a 10 escrituras co enderezo da columna encapsulado no inicio da páxina despois dunha escritura.

XILINX-63234-END-FPGA-Distribuidor-fig- (19)

Simulación do xerador de tráfico de rendemento
Neste punto, xa remataches co exemplo MIG.ampsimulación de deseño. Isto implica que a configuración da simulación está lista, que realizaches modificacións RTL na simulación de rendemento, que a nova xerarquía da simulación é correcta e que comprendeches os patróns de estímulo. Executa a simulación unha vez máis con 16 escrituras e lecturas en perfsim_stimulus.txt.

XILINX-63234-END-FPGA-Distribuidor-fig- (20)

  • Executa todo, agarda a que se active o sinal init_calib_complete e poderás ver o número proposto de escrituras e lecturas. A simulación deterase entón.XILINX-63234-END-FPGA-Distribuidor-fig- (21)
  • Cando se che solicite que saias da simulación, selecciona Non e vai á xanela de transcrición, onde poderás ver as estatísticas de rendemento.XILINX-63234-END-FPGA-Distribuidor-fig- (22)
  • Se seleccionas “saír da simulación”, as estatísticas de rendemento escribiranse nun file chamado mig_band_width_output.txt situado no cartafol sim_1/behave.
  • Exampruta do directorio: /mig_7series_0_example_perf_sim\mig_7series_0_example.sim/sim_1/behavXILINX-63234-END-FPGA-Distribuidor-fig- (23)

Podes preguntar por que o porcentaxetagO e de utilización do bus é só 29. Volva executar a simulación cos mesmos axustes IP, pero só cambiando o estímulo file a 256 escrituras e 256 lecturas

  • ff_0_0_0000_000_0
  • ff_0_0_0000_000_1

Agora verás a porcentaxetage como 85, o que implica que a DDR3 ofrece unha mellor utilización do bus para unha longa secuencia de ráfagas de escritura e lectura.

XILINX-63234-END-FPGA-Distribuidor-fig- (25)

Formas xerais de mellorar o rendemento
Os factores que inflúen na eficiencia pódense dividir en dúas seccións:

  1. Memoria específicaXILINX-63234-END-FPGA-Distribuidor-fig- (26)
  2. Controlador específico

A figura 9 dálle un repasoview dos termos específicos da memoria.
A diferenza das SRAM e das memorias de bloque, o rendemento da DDR2 ou DDR3 non se limita á velocidade máxima de datos.

Depende de moitos factores de tempo, incluíndo:

  • tRCD: Retardo do comando de fila (ou retardo de ras a cas).
  • tCAS(CL): Latencia de estroboscopio do enderezo da columna.
  • tRP: Retardo de precarga de fila.
  • tRAS: Tempo activo da fila (activar para precambiar).
  • tRC: Tempo de ciclo de fila. tRC = tRAS + tRP
  • tRAC: Retardo de acceso aleatorio. tRAC = tRCD + tCAS
  • Latencia de escritura de tCWLCASas.
  • tZQ: Tempo de calibración de ZQ.
  • tRFC: Tempo do ciclo de actualización de filas
  • tWTR: Retardo de escritura en lectura. Tempo da última transacción de escritura en comando de lectura.
  • tWR: Tempo de recuperación de escritura. Última transacción de escritura ata o tempo de precarga
  • A sincronización de todos os parámetros listados depende do tipo de memoria empregada e do grao de velocidade da parte da memoria.
  • Podes atopar máis detalles sobre as definicións e as especificacións de temporización nos estándares JEDEC de DDR2 e DDR3 ou en calquera folla de datos de dispositivos de memoria.

A eficiencia depende principalmente de como se accede á memoria. Diferentes patróns de enderezo dan diferentes resultados de eficiencia.

Gastos xerais de temporización da memoria

  1. Tempo de activación e tempo de precarga ao cambiar a novos bancos/filas ou ao cambiar de filas dentro do mesmo banco. Deste xeito, redúcese o cambio de fila, o que pode eliminar o tRCD e o tRP.
  2. Enviar comandos de lectura ou escritura continua -Mantendo o tempo tCCD.
  3. Minimizar a conversión de comandos de escritura a lectura e de lectura a escritura: tempo de recuperación de escritura para cambiar a accesos de lectura e tempo de resposta do bus para cambiar de lectura a escritura.
  4. Establece un intervalo de actualización adecuado.
    • a. A memoria DDR3 SDRAM require ciclos de actualización nun intervalo periódico medio de tREFI.
    • b. Pódense emitir un máximo de 8 comandos Refresh adicionais por adiantado (“pulled in”). Isto non reduce o número de actualizacións, pero o intervalo máximo entre dous comandos Refresh circundantes está limitado a 9 × tREFIXILINX-63234-END-FPGA-Distribuidor-fig- (27)
  5. Utilizar todos os bancos: é preferible un mecanismo de enderezo axeitado.
    • a. Fila-Banco-Columna: Para unha transacción que ocorre nun espazo de enderezos secuencial, o núcleo abre automaticamente a mesma fila no seguinte banco do dispositivo DRAM para continuar a transacción cando se alcanza o final dunha fila existente. É moi axeitado para aplicacións que requiren a ráfaga de paquetes de datos grandes a localizacións de enderezos secuenciais.
    • b. Banco-Fila-Columna: Ao cruzar o límite dunha fila, a fila actual pecharase e abrirase outra fila dentro do mesmo banco. MSB é un enderezo de banco que se pode usar para cambiar entre diferentes bancos. É axeitado para transaccións máis curtas e aleatorias a un bloque de memoria durante un tempo e, a continuación, un salto a outro bloque (banco).
  6. Lonxitude da explosión
    • a. BL 8 é compatible con DDR3 na serie 7. BC4 ten unha eficiencia moi baixa, inferior ao 50 %. Isto débese a que o tempo de execución de BC4 é o mesmo que o de BL8. Os datos simplemente están enmascarados dentro do compoñente.
    • b. Nos casos nos que non se desexe escribir unha ráfaga completa, pódese considerar a máscara de datos ou a escritura despois da lectura.
  7. Establece un intervalo ZQ adecuado (só DDR3)
    O controlador envía comandos de calibración ZQ Short (ZQCS) e ZQ Long (ZQCL).
    • a. Cumprir o estándar JEDEC de DDR3
    • b. A calibración de ZQ coméntase na sección 5.5 da especificación JEDEC JESD79-3 DDR3 SDRAM Standard
    • c. A calibración ZQ calibra a terminación no molde (ODT) a intervalos regulares para ter en conta as variacións nos VT.
    • d. A lóxica está contida en bank_common.v/vhd
    • e. O parámetro Tzqcs determina a velocidade á que se envía un comando de calibración ZQ á memoria
    • f. É posible desactivar o contador e envialo manualmente usando app_zq_req; é semellante a enviar manualmente unha actualización. Consulte (Resposta de Xilinx 47924) para obter máis detalles.XILINX-63234-END-FPGA-Distribuidor-fig- (28)

Gastos xerais do controlador

  1. Lecturas periódicas: consulte (Resposta de Xilinx 43344) para obter máis detalles.
    • a. Non cambies o período da lectura.
    • b. Omitir lecturas periódicas durante as escrituras e emitir o número de lecturas perdidas antes dunha lectura real
  2. Reordenación: consulte (Resposta de Xilinx 34392) para obter máis detalles. Para os deseños de interface de usuario e AXI, é preferible ter isto activado.
    • a. A reordenación é a lóxica que anticipa varios comandos e cambia a orde dos comandos do usuario para que os comandos que non son de memoria non ocupen un ancho de banda válido. O rendemento tamén está relacionado co patrón de tráfico real.
    • b. Baseándose no patrón de enderezos, a reordenación axuda a omitir os comandos de precarga e activación e fai que tRCD e tRP non ocupen o ancho de banda de datos.XILINX-63234-END-FPGA-Distribuidor-fig- (29)
  3. Tenta aumentar o número de máquinas bancarias.
    • a. A maior parte da lóxica do controlador reside nos terminales bancarios, e estes corresponden aos bancos de DRAM.
    • b. Un caixeiro automático xestiona un único banco de DRAM en calquera momento dado.
    • c. A asignación de caixeiros automáticos é dinámica, polo que non é necesario ter un caixeiro automático para cada banco físico.
    • d. Os caixeiros automáticos pódense configurar, pero trátase dun compromiso entre a área e o rendemento.
    • e. O número permitido de caixeiros automáticos oscila entre 2 e 8.
    • f. Por defecto, configúranse 4 máquinas bancarias mediante parámetros RTL.
    • g. Para cambiar os caixeiros automáticos, considere o parámetro nBANK_MACHS = 8 contido en memc_ui_top

Example para 8 máquinas bancarias – nBANK_MACHS = 8
Agora coñeces os factores que inflúen no rendemento. Considera unha aplicación augas arriba que che proporciona 512 bytes de datos por paquete,t, e necesitas gardalos en diferentes localizacións de memoria. Como 512 bytes de datos equivalen a 64 ráfagas de datos DDR3, volve executar o exemploample deseño cun estímulo file contén 512 escrituras, 512 lecturas e cambio de fila por cada 64 escrituras ou lecturas:

XILINX-63234-ENXILINX-63234-END-FPGA-Distribuidor-fig- (29)D-FPGA-Distribuidor-fig- (30)

Ao final da simulación, verás que a utilización do autobús é do 77 por cento.

XILINX-63234-END-FPGA-Distribuidor-fig- (31)
Figura 11: Estatísticas de rendemento para 512 escrituras e 512 lecturas: cambio de fila para 64 escrituras ou lecturas.

Agora podes aplicar os coñecementos aprendidos na sección anterior para mellorar a eficiencia. Para utilizar todos os bancos en lugar de cambiar a fila, modifica o patrón de enderezos para cambiar o banco como se mostra a continuación. Isto é equivalente a configurar ROW_BANK_Column na configuración de mapeo de enderezos de memoria na GUI de MIG.

XILINX-63234-END-FPGA-Distribuidor-fig- (32)

Ao final da simulación, verás que a utilización do autobús do 77 % anterior é agora do 87 !

XILINX-63234-END-FPGA-Distribuidor-fig- (33)
Se aínda necesitas unha maior eficiencia, podes optar por paquetes grandes de 1024 ou 2048 bytes, ou considerar unha actualización manual.
Nota: Xilinx non recomenda omitir a actualización do controlador, xa que non estamos seguros de se será capaz de cumprir co tempo de actualización automática de JEDEC, o que afecta á fiabilidade dos datos. Desde o controlador, podes cambiar NBANNBANk_MACH para ver a mellora do rendemento. Non obstante, isto pode afectar o tempo de deseño. Consulta (Resposta de Xilinx 36505) para obter máis detalles sobre nBANk_MACH.

XILINX-63234-END-FPGA-Distribuidor-fig- (33)

Abrir nome_núcleo_mig_sim.v file e cambiar os parámetros nBANK_MACHS de 4 a 8 e volver executar a simulación.
Para que o valor do parámetro teña efecto no hardware, debes actualizar core_name_mig.v fileUsei o mesmo patrón no que obtivemos unha utilización do bus do 87 % (Figura 2). Con nBANK_MACHS definido en 8, a eficiencia agora é do 90 %.

XILINX-63234-END-FPGA-Distribuidor-fig- (35)

Ademais, teña en conta que os controladores de ½ e ¼ afectan negativamente á eficiencia debido ás súas latencias. Por exemploampÉ dicir, dado que só podemos enviar comandos cada 4 ciclos CK, ás veces hai recheo adicional cando se cumpren as especificacións mínimas de temporización da DRAM, o que pode reducir a eficiencia teórica. Proba diferentes controladores para atopar o que se adapte aos teus requisitos de eficiencia. Referencias

  1. Zynq-7000 AP SoC e FPGA da serie 7 MIS v2.3 [UG586]
  2. Xilinx MIG Solution Center http://www.xilinx.com/support/answers/34243.html

Historial de revisións
13/03/2015 – Publicación inicial..

Documentos/Recursos

Distribuidor de FPGA XILINX 63234 END [pdfGuía do usuario
Distribuidor de FPGA END 63234, 63234, Distribuidor de FPGA END, Distribuidor de FPGA

Referencias

Deixa un comentario

O teu enderezo de correo electrónico non será publicado. Os campos obrigatorios están marcados *