Você pode recomendar uma implementação legível e educacional de uma CPU em VHDL ou Verilog? De preferência algo bem documentado.
PS: Eu sei que posso olhar opencores
, mas estou especificamente interessado em coisas que as pessoas realmente viram e acharam interessantes.
PS2. Desculpe pelas tags ruins, mas como novo usuário não consigo criar novas
Respostas:
Você pode assistir a uma série de artigos que escrevi sobre isso há muito tempo para a revista Circuit Cellar, Construindo um sistema RISC em um FPGA .
Feliz hacking!
fonte
Pegue este livro, eu tenho a primeira edição. Alguns anos atrás, implementei sua CPU em um pequeno Flex 10K10 FPGA em uma PCB que eu projetei, com alguns botões e um único display de 7 segmentos para inserir dados e exibir os resultados.
fonte
Depende muito de qual é o seu objetivo de estudar o código? Em outras palavras, o que interessante significa para você?
Se você estiver fazendo isso para ver quanta complexidade pode entrar em uma CPU, poderá estar mais interessado em estudar a fonte das arquiteturas do OpenSPARC . Vai levar um longo tempo para mergulhar em, mas você vai ter uma apreciação para o geral retrato grande vista de um microprocessador complexa.
Então, se for para estudar recursos específicos da microarquitetura de computadores, você deve observar algumas máquinas RISC simples como o AEMB , um pequeno e rápido processador RISC de 32 bits e multithread (plugue sem vergonha).
Então, se você deseja aprender bons estilos e convenções de codificação, o design do LEON2 é um bom lugar para aprender um bom estilo de codificação VHDL.
No entanto, se seu objetivo no estudo de um processador é aprender a projetar você mesmo, sua melhor aposta seria começar com uma das máquinas simples de 8 bits (existem muitos exemplos AVR, 8051, PIC na rede).
fonte
Você pode tentar examinar alguns designs de CPU adiante. A quarta é uma linguagem de programação simples, cuja especificação e implementação são definidas por meio de duas pilhas de pilhas (uma para dados e outra para endereços de retorno).
Vários pequenos processadores VHDL / Verilog estão disponíveis gratuitamente:
Mais alguns links podem ser encontrados aqui:
PS. Apesar de ser uma linguagem bastante antiga e obscura, muitas VMs modernas baseadas em pilha (Java, VMs rápidas de JavaScript) têm design de baixo nível semelhante, portanto, aprender sobre isso pode ser proveitoso.
fonte
O PicoBlaze é bom, no entanto, não está disponível no VHDL independente do fornecedor.
Algumas outras opções são:
Além disso, se você estiver procurando por um compilador para sua CPU, é mais provável obter um para uma CPU de 16 bits. Uma vez houve o compilador de Poderico de uma linguagem C para Picoblaze, mas ele foi retirado da web.
fonte
Você pode dar uma olhada no processador Xilinx PicoBlaze . É um microcontrolador incorporado mínimo de 8 bits, e o código fonte deve estar disponível.
fonte
Tarde demais, no entanto, eu forneço uma pequena resposta.
Existe um curso nomeado fromNand2Tetris da Universidade de Jerusalém, este curso também está presente no coursera, eu construí o computador que eles criaram nesse curso. Eu implementei a linguagem no esquema para poder me ver como o computador funciona nos mínimos detalhes. E eu consegui, o simulador que eles criaram em Java não pode fazer tudo o que eu queria ver.
https://github.com/alinsoar/little-computer
fonte