Conhecimento básico e explicação do tempo de operação da teoria SDRAM (reproduzido)

Esta semana estou aprendendo sobre SDRAM. Claro, eu falei sobre alguns dos conhecimentos teóricos de SDRAM na semana passada. Esta semana, irei principalmente escrever código e depurar. Se você tem um amigo que nunca esteve em contato com a memória antes, pode ler o artigo relativamente bom de alfabetização escrito no setor "Guia de Tecnologia de Memória Master Advanced Ultimate" ( clique para fazer o download ), embora Kevin tenha lido este artigo antes., Mas depois de ler, ainda não tenho a menor ideia de como escrever código, então Kevin sugere que se você é um amigo que não sabe que a memória é um cavalo mágico, você pode ler este artigo. Para aqueles que têm uma base mas não entendo o tempo de operação do SDRAM Você pode consultar diretamente os documentos oficiais do fabricante do SDRAM. Embora Kevin explique o tempo de operação do SDRAM com base em seu entendimento do manual oficial nesta postagem do blog, ainda é recomendado que você leia mais documentos em inglês para que você possa experimentar o conhecimento original. Isso também evita que a chamada versão "oficial" chinesa traga algo enganoso para todos. Afinal, haverá alguns amigos que estão olhando para a tradução chinesa de "autoritários", mas estão constantemente repreendendo suas mães, haha. Portanto, não confie no chamado manual traduzido para o chinês, porque o entendimento de todos sobre o significado em inglês no manual pode ser diferente, então todos devem acreditar que o manual do fabricante é o mais confiável.

Em seguida, começamos oficialmente a explicar o conhecimento relevante de SDRAM.

Insira a descrição da imagem aqui

Sobre a estrutura interna da SDRAM

Pegamos emprestado parte do texto do "Guia de Tecnologia de Memória Master Advanced Ultimate" para explicar:

Insira a descrição da imagem aqui

Vendo isso, não deve ser difícil para todos imaginar que a forma como tratamos a SDRAM é: primeiro determine o endereço do Banco e, em seguida, determine o endereço da linha e coluna.

Método de cálculo de capacidade de memória SDRAM

Insira a descrição da imagem aqui
128Mb na figura representa a capacidade total de SDRAM, 2M: representa um banco com um total de 2M de endereços, ou seja, um banco tem 2M de unidades de armazenamento; 4Banco representa 4 bancos; 16 E / S representa uma largura de 16 bits bits, o barramento de dados usa 16 bits e o número máximo que uma célula de memória pode armazenar é 2 ^ 16-1 = 65535. Em seguida, calcule a capacidade de acordo com cada parâmetro: 2M x 4 x 16b = 128Mb.

Introdução do pino do chip SDRAM

A primeira imagem é o diagrama de pinos de SDRAM, e a segunda imagem é a informação de descrição de cada sinal de pino.
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
As duas imagens acima podem ser encontradas no manual do chip SDRAM. O seguinte Kevin irá nos apresentar brevemente como fazer o desenvolvimento de FPGA. Sinais para focar

CLK: SDRAM trabalhando relógio e todos os sinais de entrada são detectados na borda ascendente de CLK, o que significa que qualquer comando que dermos ao SDRAM deve ser estável na borda ascendente de CLK para evitar que SDRAM obtenha o que fornecemos. Ocorreu um erro durante o comando.

CKE: sinal de ativação do relógio, um sinal usado para controlar se o relógio interno da SDRAM funciona (também há um relógio dentro da SDRAM)

CS: Sinal de seleção de chip. Deve ser observado aqui que se você deseja operar SDRAM, deve reduzir o sinal de seleção de chip.

BA0, BA1: linha de endereço do banco, usada para endereçar o banco, pode controlar os 4 bancos de SDRAM

A0 ~ A11: Linhas de endereço. Quando selecionamos o endereço de linha de um banco em SDRAM, precisamos de 12 linhas de endereço (A0 ~ A11); quando selecionamos o endereço Col, usamos apenas as 9 linhas A0 ~ A8; A10 Este sinal pode ser usado para controlar a pré-carga automática .

RAS, CAS, WE: Esses três fios são usados ​​para enviar comandos para SDRAM, incluindo comandos como inicialização, leitura, escrita e carregamento automático.

UDQM, LDQM: Máscara de entrada / saída de dados.

DQ0 ~ DQ15: As linhas de dados do SDRAM são bidirecionais. Os dados gravados ou lidos no SDRAM são transmitidos no DQ

Você pode ver que o barramento de endereço A0 ~ A11 acima pode controlar tanto a linha quanto a coluna, e o número de linhas usadas para controlar o endereço da coluna e o endereço da linha não é o mesmo. Pode haver algumas perguntas. Kevin explicará a você abaixo . Um: para o
Insira a descrição da imagem aqui
outro, você pode não entender o papel das máscaras (UDQM, LDQM). Seja paciente e ouça a explicação de Kevin abaixo:

Insira a descrição da imagem aqui

Tempo de operação relacionado a SDRAM

Tanto conhecimento relacionado a SDRAM foi estabelecido antes, eu acredito que você mal pode esperar para saber como operar SDRAM, por favor, observe o oficial e ouça Kevin em detalhes.

Insira a descrição da imagem aqui
A figura acima é o diagrama de salto de estado dentro do SDRAM. A linha preta grossa indica que ele irá pular automaticamente para outro estado neste estado, e a linha preta fina indica que ele precisa receber um comando para saltar.

Inicialização SDRAM

Primeiro encontramos o estado inicial de SDRAM "POWER ON", que é o estado recém-ligado. Depois de dar o comando 'Pré-carga' no estado "LIGADO", ele irá pular para o estado "Pré-carga" e, em seguida, pulará automaticamente para o estado "IDLE". No estado "IDLE", precisamos dar ao SDRAM dois comandos de atualização automática e, em seguida, definir o registro de modo. Depois que o registro de modo é projetado, nosso processo de inicialização está encerrado. Dito isso, ainda não sabemos como inicializar o SDRAM. Naquela época, Kevin ainda não sabia como escrever o código para inicializar o SDRAM depois de ler o "Advanced Advanced Memory Technology Guide". Nesta postagem do blog, Kevin não falará sobre como escrever código por enquanto. Eu apenas explicarei o tempo e os princípios relacionados ao processo de inicialização para todos. Os princípios são totalmente compreendidos. Acredito que você terá algumas ideias sobre como para escrever o código. Sim, sobre como escrever o código, você também pode consultar outra postagem do blog de Kevin.

Vamos continuar com a imagem do documento oficial anterior. Desta vez, você pode obter um diagrama de forma de onda. Você deve observá-lo com atenção. É muito útil para você escrever código:
Insira a descrição da imagem aqui
pode ser a primeira vez que você entra em contato com este tipo de diagrama de tempo. É uma dor de cabeça no momento, mas está tudo bem. Ouça Kevin para explicar lentamente. Ao ler a explicação do documento, será mais fácil de entender quando combinado com o diagrama de estado acima. Para cada instrução que aparece no diagrama, podemos todos. Encontrada no manual do dispositivo que usamos:

Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui

Operação de gravação SDRAM

No diagrama de transição de estado, podemos descobrir que após a inicialização ser concluída, antes de ler ou gravar no SDRAM, também precisamos ter um comando "ACT" (este comando também aparece em nosso diagrama de sequência de inicialização, mas estamos considerando trata-se disso), o significado desse comando em língua vernácula é o comando "válido", que é ativar uma linha no SDRAM para que possamos ler ou escrever.

Antes de falar oficialmente sobre a operação de gravação, espero que todos possam prestar atenção a ela. Talvez amigos cuidadosos tenham descoberto que existem dois estados de "WRITE" e "WRITEA" em nosso diagrama de transição de estados. Quando estivermos nesses dois estados, todos nós podemos escrever para SDRAM, mas no estado "WRITEA", depois de escrevermos um comprimento de burst de dados, SDRAM irá automaticamente sair deste estado para atualizar, e no estado "WRITE", é necessário dar o correspondente Ele irá pular fora do estado "WRITE" somente após a instrução, portanto, para melhorar a velocidade operacional do SDRAM, geralmente usamos para evitar que o SDRAM entre no estado "WRITEA" para aumentar a velocidade. Claro, a diferença entre "READ" e "READA" é a mesma.

Vamos continuar com o diagrama de tempo anterior da operação de gravação, este diagrama de tempo não entra no estado "WRITEA":

Insira a descrição da imagem aqui
Seguindo a velha rotina, Kevin continuou a analisar o tempo das operações de gravação com todos:
Insira a descrição da imagem aqui

Operação de leitura SDRAM

Vamos falar sobre nossa operação de leitura. Na verdade, a operação de leitura e a operação de gravação são semelhantes. Acredito que todos tenham a base da operação de gravação. Será mais fácil entender a operação de leitura do SDRAM. Vamos continuar com a imagem acima:
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui

Operação de atualização automática SDRAM

Kevin mencionou a atualização automática do SDRAM muitas vezes antes. Por que o SDRAM deveria ser atualizado automaticamente? Acredito que você já saiba o motivo da introdução anterior. Pode-se dizer que se o SDRAM não for atualizado no momento da atualização, não importa o que gravar no SDRAM. A quantidade de dados é inútil, então todos devem dar grande importância à operação de atualização do SDRAM e devem dar o comando de atualização quando for hora de atualizar. O tempo máximo para a capacitância interna da SDRAM salvar dados é de 64ms, e nosso banco possui 4096 linhas, 64ms / 4096 ~ = 15us, ou seja, para garantir que os dados dentro da SDRAM não sejam perdidos, o máximo O intervalo de tempo entre duas atualizações é de 15 us, portanto, para permitir mais tempo para a SDRAM ler ou gravar, definimos o ciclo de atualização da SDRAM para 15 us.

Aqui, Kevin também deseja adicionar um pouco de conhecimento. Cada vez que SDRAM é atualizado, cada linha é operada. Não é carregado para cada capacitor individualmente. Portanto, sempre que uma atualização é realizada, os capacitores da linha são carregados. Podemos entender isso acontece de forma síncrona.
Insira a descrição da imagem aqui
Este é o diagrama de tempo do SDRAM para atualização automática. Acredito que todos têm a base anterior e não devem ter medo deste diagrama.

Insira a descrição da imagem aqui
Bem, com relação à inicialização, leitura, escrita e atualização automática de SDRAM, Kevin explicou tudo aqui com base em seu próprio entendimento. Se houver alguns erros neste artigo, espero que você possa criticar e apontar a tempo. Além disso, Kevin também compartilhará como escrever o controlador SDRAM na próxima postagem do blog, ou seja, como escrever as operações neste artigo em código.

Livros de referência:

1. "Guia de Tecnologia de Memória Master Advanced Ultimate"

  1. Manual oficial do fabricante

Indique: Blog de Deng Kanwen »Conhecimento básico e explicação do tempo de operação da teoria SDRAM

Acho que você gosta

Origin blog.csdn.net/sinat_41653350/article/details/114873391
Recomendado
Clasificación