Este é o meu primeiro olhar sobre o FPGA, mas com grande experiência no desenvolvimento de software. Gostaria de comprar uma placa para aprender, mas gostaria de poder rodar um computador baseado no Z80 do início dos anos 80 (pense no modelo TRS80, eu digo).
Estive observando as placas Spartan 3E e Spartan 6, mas não tenho muita certeza das diferenças de desempenho / capacidade.
O que estou pensando é algo como isto:
- Espaço suficiente para:
- Z80 simulado usando o softcore op80 T80.
- periféricos integrados simulados, como controlador de vídeo, controlador de som (1 bit simples), controlador de disquete
- talvez alguns controladores de picoblaze para usar os botões integrados para a seleção de imagens de disquetes, etc.
- Conector VGA (16 cores bastariam, 256 bônus)
- Conector do teclado PS2
- Flash interno suficiente para armazenar várias imagens de disquetes virtuais e ROM do sistema (16 Mb devem ser suficientes)
- Na tela de bordo, o LCD seria bom, o LED do segmento 4x7 provavelmente seria suficiente.
- algum tipo de soquete de cartão flash seria bom, mas não obrigatório.
- Conexão de energia para a rede elétrica, provavelmente através de um pacote de energia.
Estas são as placas que estou considerando atualmente:
- Placa FPGA Nexys ™ 3 Spartan-6
- Spartan 3E Starter Board
- Placa de desenvolvimento Spartan 3E-1600
- Placa FPGA Spartan-3E Basys ™ 2 (500K) + 16M Flash pMod
- Placa FPGA Spartan-3E Basys ™ 2 (1200K) + 16M Flash pMod
EDIT: Acabei de notar que o Basys não tem RAM integrada, então eu estaria limitado à RAM do FPGA - não é o ideal.
A principal coisa que não tenho certeza é quanto espaço sobrará depois de carregar o softcore T80. Qualquer conselho muito apreciado.
Respostas:
Embora objetivos ambiciosos sejam bons, meu conselho é começar menor. Muito pequeno. O projeto que você está propondo seria difícil para um designer intermediário de FPGA e quase impossível para um iniciante. Eu sou um grande defensor do FPGA e gostaria de ver você ter sucesso - começar com um projeto tão ambicioso provavelmente resultará em muita frustração e provavelmente abandonará o design do FPGA.
Deixe-me colocar em termos de software: Este projeto seria como alguém que nunca fez software escrevendo um compilador C completo - a partir do zero.
Comece menor e você ficará muito mais feliz.
Edit: Adicionado material abaixo.
Dito isto, é difícil fazer uma boa recomendação para um conselho. A razão para isso é que qualquer placa que eu recomendo para alguém sem experiência em FPGA não é absolutamente a mesma que eu recomendaria para fazer um projeto do tipo CPU. Uma placa para iniciantes pode custar entre US $ 50 e US $ 100, enquanto uma placa para fazer CPU + VGA + Flash_Card + o que for de US $ 1000 a 2000.
Há também uma grande chance de que, depois de criar alguns projetos simples de FPGA, você mude de ideia e queira fazer um projeto diferente posteriormente.
Minha recomendação, então, é que você obtenha uma placa simples na faixa de preço inferior a US $ 100 primeiro. Então, quando você estiver pronto para enfrentar um projeto maior, poderá comprar uma placa mais cara, próxima do que deseja (seja lá o que for naquele momento).
O fórum que eu gosto é este: http://www.xilinx.com/products/boards-and-kits/AES-S6MB-LX9.htm
É barato, usa uma peça da geração atual, é de uma fabricação de Nível 1 e pode até fazer algumas coisas simples na CPU.
fonte
Hmmm, infelizmente é vhdl, eu ia começar com verilator ou icarus verilog. Em vez disso, talvez use ghdl. A primeira sugestão é criar um ambiente de simulação, começar a construir essa coisa lá.
Antes de escolher um painel fpga, você precisa ter uma idéia do tamanho que será, as várias ferramentas são gratuitas ou gratuitas com o sacrifício do seu endereço de e-mail e outras informações. Experimente as ferramentas de treliça, alterações, xilinx, etc., inicie estritamente com o núcleo T80 e alguns desses fpgas de destino que você está procurando. Suponho que tudo o que você deseja adicionar aumentará bastante qualquer porcentagem do número completo que você criar ao implementar o núcleo T80. Aposto que, sozinho, você será capaz de eliminar alguns dos candidatos.
Talvez a placa fpgaarcade, que de alguma forma tenha usado o núcleo T80, seja o que você está procurando ... Quando estiver disponível.
Eu tenho que concordar completamente com o outro David, se você ainda não é um desenvolvedor profissional de fpga / board, não é aí que você começa, você está olhando para talvez anos de trabalho, provavelmente comprando várias placas de milhares de dólares enquanto destrua-os com erros etc. Se você tiver esse tipo de dinheiro à sua disposição, talvez deva contratar um consultor para orientá-lo no processo. Ou crie uma placa de acordo com as especificações.
Mais poder para você, se isso é realmente algo que você deseja fazer, seja esperto, comece com o núcleo e alguns programas simples que piscam alguns leds e avançam lentamente a partir daí. Eu recomendo a rota de simulação. Além da gratificação instantânea, não se preocupe com o silício até estar mais longe. Até então, você terá mais do design e poderá usar as ferramentas para ver em que ele pode se encaixar. Se você não conseguir executar essa coisa em simulação, provavelmente não a executará em silício.
fonte
Se você deseja simular computadores com saída de vídeo, tente obter algo com uma quantidade razoável de memória RAM, pois será necessário para a memória do sistema e da memória de vídeo. Obviamente, um conector interno para VGA é bom, mas se você quiser fazer uma simulação fiel de tempo de alguns sistemas antigos, poderá precisar gerar vídeo composto enxertando em um DAC ou mesmo em um resistor R2R.
Em seguida, talvez escolha a maior opção de chip de contagem de gate disponível na placa suportada pela versão gratuita das ferramentas FPGA . Os chips maiores implicitamente têm mais memória ram de bloco (já vi muitos projetos controlados por isso, em vez de contagem de portas); no entanto, você pode estar no território de aplicativos em que a memória RAM externa e um FPGA menor são mais baratos que um FPGA grande o suficiente para fazer tudo isso. .
O armazenamento flash sempre pode ser enxertado posteriormente - por exemplo, um cartão SD de vários gigabytes com interface no modo SPI.
Geralmente, as placas FPGA são da classe de US $ 100-200 e depois da classe realmente cara. Você provavelmente pode progredir bastante com um dos primeiros.
fonte
Eu era o pôster original desta pergunta, mas não deveria estar logado ou ainda não tinha criado uma conta ...
Enfim, no final, deixei o projeto de lado por 4 ou 5 meses, mas depois fui com a placa Nexys3 e agora tenho um computador Microbee instalado e funcionando. Você pode ler sobre isso aqui: http://www.toptensoftware.com/fpgabee .
Apesar de tudo, fiquei muito feliz com o Nexys3, ele lida com o núcleo T80 com espaço de sobra, não era muito caro (US $ 250) e tem tudo o que preciso (e muito mais).
A principal decepção é que não consegui fazer com que a interface do teclado USB-HID funcionasse e, embora ainda esteja discutindo com a Digilent, suspeito que ela só funcione com alguns teclados e não consegui encontre um que seja compatível (já tentei cerca de 8 teclados diferentes). Não há modelos de referência para isso, os testes periféricos não testam o teclado e eu li sobre outras pessoas com o mesmo problema.
fonte