Pergunta

Para um projeto universitário de médio prazo, tenho que projetar um processador configurável, para escrever o código no VHDL e depois sintetizá-lo em uma placa Spartan 3E FPGA da Digilent. Eu sou um iniciante, então você poderia me indicar algumas informações sobre processadores configuráveis, para algumas idéias relacionadas ao conceito?

Foi útil?

Solução

Você pode conferir meu Responda para uma pergunta relacionada. Fizemos quase o mesmo, construindo uma CPU no VHDL para uma placa FPGA.

Outras dicas

Isso é apenas uma maquete, então esteja ciente de que vou limpar isso

Fetch Instruct1,
Fetch Instruct2, Fetch DataS1
Fetch Instruct3, Fetch DataS2, Process DataS1
Fetch Instruct4, Fetch DataS3, Process DataS2, Store1 DataS1
Fetch Instruct5, Fetch DataS4, Process DataS3, Store2 DataS1
Fetch Instruct6, Fetch DataS5, Process DataS4, Store3 DataS1
Fetch Instruct7, Fetch DataS6, Process DataS5, Store4 DataS1
Fetch Instruct8, Fetch DataS7, Process DataS6, Store5 DataS1

Basicamente, esses são os principais componentes de um processador Parte 1 ALU: Unidade lógica aritmética (é aqui que o draeing seria útil), um ALU possui 2 portas de entrada e uma porta de saída. As 2 portas de entrada são operadas e o resultado em saída. Para saber qual instrução o ALU precisa realizar, há uma porta de controle. Basicamente, este é o nome do comando. Portanto, se a porta de controle tiver 4 bits, existem 16 instruções possíveis.

Parte 2 Unidade de registro: este é um conjunto de células de memória (memória de cache). O conteúdo dessa memória é frequentemente transferido para as portas de entrada da ALU.

Parte3 Unidade de controle: isso é como o mestre da orquestra da CPU. Seu trabalho é 1 para que os dados da entrada ALU 21, que as instruções precisam acontecer nos registros de instruções, envie esses códigos para as portas de controle ALU

Interface. É assim que a RAM e outros periféricos se comunicam com a CPU

Toda vez que as produções de intuação, resultado, deve ser armazenado. Ele pode ser armazenado em RAM, para que uma gravação de RAM esteja pronta assim que o resultado estiver pronto. Ao mesmo tempo, uma leitura de RAM das próximas informações da próxima instrução pode ocorrer. E também ao mesmo tempo, a próxima instrução pode ser buscada na RAM.

A geração de 1 instrução geralmente requer mais de 1 ciclo de relógio. O processamento de um em estrutura é analógico para a produção industrial. Portanto, o trabalho em cadeia é feito.

Vliw A programação que escrevemos é linear, significando instruções acontecendo uma após a outra. Mas as CPUs hoje (embora não os braços) têm várias instruções de ALU, portanto, várias instruções são processadas ao mesmo tempo.

Então, você tem unidades de processamento em cadeia trabalhando múltiplas instruções ao mesmo tempo (pipeline) e você tem muitas dessas unidades (superscalar)

Torna -se então uma questão do que pode/precisa fazer para fazer sua arquitetura da CPU.

Fiz um projeto semelhante, implementando um processador com um pipeline de 5 estágios no VHDL.

Primeiro, você precisa entender a arquitetura de como os processadores funcionam. Sem entender o que cada Stange está fazendo e que tipo de sinais de controle você precisa, você não tem esperança de realmente escrever um no VHDL.

Em segundo lugar, comece a desenhar diagramas de como as instruções e dados fluirão através do seu processador (ou seja, em cada estágio). Como cada estágio é conectado um ao outro? Para onde vão os sinais de controle? De onde vêm minhas entradas e de onde vão minhas saídas?

Depois de ter um diagrama sólido, a implementação real no VHDL deve ser relativamente direta. Você pode usar a modelagem comportamental do VHDL para explicar essencialmente exatamente o que vê no diagrama.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top