Que método você sugere para a prototipagem de circuitos assíncronos?


9

Fiquei surpreso e, de certa forma, chocado ao descobrir que não existe uma ferramenta estabelecida adequada para projetar e criar protótipos de circuitos assíncronos.

Continuo pesquisando usando o google e outros meios para encontrar um bom método para projetar circuitos assíncronos VLSI, mas até agora as pesquisas falharam em produzir uma resposta.

Existem algumas ferramentas abandonadas, como o Balsa, etc. para automatizar projetos VLSI, mas elas são totalmente não documentadas e difíceis de usar. O que estou procurando é algo como FPGAs que temos no mundo síncrono.

De qualquer forma, agradeço se você compartilhar o nome de uma ferramenta confiável e de um hardware de prototipagem que alivie o fardo do projeto de circuitos assíncronos.


10
Você não o encontrará (produtos e ferramentas comerciais), porque não há demanda no mercado por isso. O design assíncrono é muito mais difícil de acertar, e é por isso que é mais econômico limitar seu uso a algumas funções primitivas bem definidas (flip-flops etc.) e depois usar técnicas síncronas para todas as funções de nível superior. Ajude-nos explicando sua motivação para isso e o que você espera alcançar.
Dave Tweed

6
A essência de um projeto de pesquisa é criar algo novo, de modo que é de se esperar o fato de haver trilhas de terra abandonadas em vez de rodovias interestaduais. O único indicador que posso sugerir é procurar os papéis de Teresa Meng. Lembro-me de ter visto uma ou duas da ISSCC 1990, quando foi realizada em Glasgow.
Brian Drummond

5
Da mesma forma, estudei com Simon Moore ( cl.cam.ac.uk/~swm11/resume ), que tinha um grupo inteiro trabalhando nisso há mais de uma década. Também estive envolvido com uma startup de ferramentas de design de hardware assíncrona ... que foi implementada em ferramentas de design síncronas de baixo consumo de energia, devido à falta de mercado. Novamente, você deve procurar documentos dele e de seu grupo de pesquisa.
Pjc50

4
(Além disso, as pessoas que estão votando para fechar esta pergunta, porque não se trata de projetos eletrônicos são simplesmente errado)
pjc50

2
Também há NULL Convention Logic com uma biblioteca de primitivas VHDL. Os nomes primitivos indicam um link para Theseus Research Inc .. Houve uma pergunta multiplicadora da NCL no Stack Overflow retirada no momento em que eu faria um testbench. (13 de maio de 2015). A idéia aparece periodicamente para evitar a análise de poder em criptografia (vi uma menção da IACR na semana passada). Um livro PROJETO DO SISTEMA SEM RELÓGIO DE DESIGN LOGICAMENTE DETERMINADO COM LÓGICA DE CONVENÇÃO NULA , Karl M. Fant.
user8352

Respostas:


3

A NCL da lógica Theseus foi mencionada, também havia sistemas Handshake (spin-off da Philips), bem como Fulcrum Microsystems e Caltech. Também havia um processador ARM assíncrono chamado Amulet. E a SUN Microsystems também tinha uma equipe de design de processador para um SPARC sem relógio.

Eu chamaria esses projetos sem relógio para evitar a confusão entre o design lógico, como contadores de ondulação e esses tipos de circuitos. Mas, em geral, qualquer um dos termos é usado.

O DC (Design Compiler) da Synopsys e o Merlin dos sistemas FTL também estavam disponíveis.

No entanto, se você tiver uma biblioteca de células principais projetada adequadamente, essa abstração / descrição de nível superior pode se tornar trivial. A questão principal é que, se você projetou um sistema que permite que cada célula propague para frente um sinal que diz "resultado bom", além de propagar o sistema "disponível para trás", o sistema se auto-regula e, como tal, pode ser simplesmente projetado de maneira muito parecida com software sem se preocupar com condições de corrida ou tempo para esse assunto.

Portanto, as ferramentas usadas seriam tão simples quanto o SPICE para o design de nível de célula (nível de transistor) e C para compilar em um conjunto de primitivos a serem colocados. Durante toda a minha vida, não consigo encontrar a ferramenta baseada em C (código aberto) usada.

Olhe para pessoas como Wesley Clark (ele faleceu recentemente), bem como Ivan Sutherland e Karl Fant (mencionados em outros lugares também).


@Ehsan: Certamente é interessante, mas eu não consigo ver como ele aborda a questão em tudo . O layout no nível da célula é para design ASIC, não para prototipagem.
Ben Voigt

@ Ben: Eu concordo, e é por isso que não aceitei sua resposta. Mas eu poderia simular alguns circuitos assíncronos básicos usando bibliotecas no nível de célula no MultiSim e no LTSpice. A lógica da NCL também possui uma biblioteca Verilog da sandbox, na qual é possível prototipar circuitos baseados na NCL usando FPGA: github.com/karlfant/NCL_sandbox . Mas ainda não tentei. Quando estudei a NCL, percebi a enorme sobrecarga da abordagem, por isso estou tentando evitá-la e criei algo mais prático.
Ehsan

2

Se um registro tiver um relógio com um relógio do sistema, seria considerado síncrono. Se o mesmo registro fosse cronometrado diretamente de um portão, circuito lógico ou geralmente qualquer coisa além de um relógio do sistema, seria assíncrono. Os registros da Altera podem ter clock de vários relógios do sistema ou por lógica. Você pode construir qualquer tipo de circuito de portão que desejar. . . Tem sido minha experiência com a maioria dos tipos de ASICs ou FPGAs que, cada vez que é compilado, algo é roteado diferente. Assim, os atrasos na propagação estão sempre mudando.


2

Um FPGA é o hardware certo. Mas você não poderá usar o software de síntese com foco síncrono, porque ele faz as transformações erradas.

Por exemplo, um FPGA é perfeitamente capaz de formar um oscilador construído com uma corrente inversora. Mas se você definir essa cadeia de inversores em, por exemplo, VHDL e usar um dos compiladores padrão, o "NOT-gate pushback" eliminará os inversores em pares e o deixará com apenas um, e o dispositivo não irá oscilar.

Você pode precisar escrever um pouco do seu próprio software de síntese, o que será possível se você obter informações suficientes no fluxo de bits. Eu examinaria outros esforços de pesquisa que operam no fluxo de bits e não na descrição comportamental - coisas como detecção de falhas e análises de confiabilidade são altamente dependentes do mapeamento escolhido pelo sintetizador. Provavelmente, algum trabalho na área da lógica tolerante a falhas redundante já elaborou algumas técnicas de mapeamento personalizadas, uma vez que a eliminação do termo comum do produto é uma das transformações padrão executadas por um sintetizador tradicional e destrói absolutamente um design redundante.

Ao controlar o uso das primitivas do elemento lógico do FPGA, como tabelas de pesquisa e interconexão local e global, você poderá usar os atrasos inerentes para realizar seu design assíncrono. Seu problema de otimização é muito mais difícil do que se ajustar ao objetivo de atender aos tempos de configuração e espera, mas é isso que faz a pesquisa.


1

Dependendo da complexidade do seu circuito. Se o seu design é principalmente digital, você pode usar o sistema Quartus da Altera. Insira seu design com ferramentas gráficas e / ou VHDL usando registros com sincronização assíncrona ou use apenas portas lógicas. Adicione buffers fictícios, portas, pinos de sinal etc., conforme necessário, para atrasar os caminhos de sinal para corresponder ao que você precisar. (supondo que seu design seja mais lento que os atrasos mais rápidos em seus portais de CPLD <5 ns)

Muitos anos desenhando com seus chips, nunca encontrei um resultado de simulador incorreto. Projetos menores podem ser feitos com suas ferramentas gratuitas.


"registros assíncronos com clock" ?! Não tenho certeza se você entendeu os conceitos corretamente. Não existe algo como "registros com sincronização assíncrona". Um circuito possui um relógio (síncrono) ou não (assíncrono). A ferramenta que eu estou procurando apoio obrigação primitiva portão Muller, dual-rail, portões 2NCL, etc.
Ehsan
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.