Como desenhar um novo chip num orçamento
Hardware guru bunnie Huang fala sobre as ferramentas de código aberto que ele usa para desenhar circuitos, e porque ele quer construir o seu próprio ASIC
Tivemos recentemente uma troca interessante com o bunnie Huang, guru do hardware e criador do Chumby, NeTV, e o portátil Novena, entre outras coisas. Ele também é o autor de Hacking the Xbox, The Essential Guide to Electronics in Shenzhen, e não um, mas dois artigos em IEEE Spectrum.
Estávamos interessados na opinião de Huang sobre se uma pequena equipe, modestamente financiada – digamos que uma faculdade – poderia produzir um chip personalizado, da mesma forma que tais grupos agora criam produtos e software de nível de placa com facilidade.
Os empreendimentos de software em particular se beneficiam da vasta quantidade de código aberto que está disponível para uso na construção de produtos comerciais. (Um estudo descobriu que a aplicação comercial média contém 35% de código aberto). Nós queríamos saber se os designers de chips também desfrutavam de um rico ecossistema de blocos de construção de código aberto. Ou o design do chip ainda é tão fechado e tão desafiador que é realmente só para grandes empresas estabelecidas?
IEEE Spectrum: Porque é que uma pequena start-up iria querer produzir o seu próprio circuito integrado específico de aplicação (ASIC) em primeiro lugar? Não poderia simplesmente usar um conjunto de portas programáveis de campo (FPGA) para qualquer produto que estivesse incubando?
Huang: Os FPGAs geralmente vêm em grandes pacotes e consomem muita energia.
ASICs são absolutamente necessários para fazer coisas como aparelhos auditivos, dispositivos médicos implantáveis ou comestíveis, rastreadores GPS para serem transportados por animais, rádios móveis, dispositivos RFID, cartões de saudação eletrônicos, ou outros circuitos descartáveis de uso único.
Outro exemplo é o IC driver dentro do chip WS2812 – revolucionou a iluminação para poder criar um único pacote de LEDs RGB com protocolo serial embutido, incorporando um pequeno ASIC com os LEDs. (Na verdade, eu conheci o cara que projetou a primeira variante comercialmente viável disso.)
Então há definitivamente uma ampla gama de produtos realmente úteis, que mudam a indústria e que as FPGAs simplesmente não podem tocar – principalmente no que você pode chamar de “coisas baratas e de baixo consumo de energia”
Como você decidiria quando usar uma FPGA e quando criar um ASIC? Isso depende. As FPGAs desperdiçam uma grande quantidade de silício em comparação com um ASIC, então o piso de custo, que depende em grande parte da área de superfície de silício necessária para o chip, é frequentemente uma ordem de magnitude maior do que você gostaria que fosse. Mas fabricar um ASIC também não é barato.
Estarei no meio desta armadilha neste momento: Estou a tentar construir a próxima geração de NeTV, que é um motor de processamento de vídeo baseado em FPGA. Os ASICs que podem realizar esse processamento de vídeo custam menos da metade do que uma FPGA e podem fazer um trabalho melhor (na medida em que podem processar vídeo de 4K, enquanto que a minha solução FPGA atinge no máximo 1080p). Mas os ASICs existentes não têm toda a funcionalidade que eu preciso. Devido a algumas outras restrições, porém, eu simplesmente não posso me dar ao luxo de criar um ASIC próprio para este produto.
Outra categoria de coisas que os ASICs são valiosos, pois estão no extremo oposto do espectro: as coisas realmente de ponta. Deixe-me explicar com uma pequena anedota.
A enquanto estava de volta, li o artigo sobre a Unidade de Processamento de Tensor (TPU) do Google, e pensei: “Droga, eu quero isso”. Então comecei a olhar para as FPGAs para ver o que seria necessário para construir algo de capacidade equivalente.
Descobri que as FPGAs que podem até começar a segurar uma vela na TPU do Google custam muitos milhares de dólares each-mais elas requerem licenças de software baratas. Algumas grandes empresas (como a Microsoft) foram capazes de se juntar aos fabricantes de FPGA, e presumivelmente, a Microsoft recebeu um desconto bastante elevado. Assim, poderia criar algum hardware interessante usando FPGAs para competir com as TPUs do Google. Mas com FPGAs tão capazes, você está falando algo como US $17.000 por um único chip, pelo menos para a maioria das pessoas ou empresas.
Spectrum: O que é o mínimo que alguém poderia gastar para criar um ASIC a partir do zero? Assuma que o chip é muito simples. Imagino que uma boa fração do custo poderia ser apenas para o software desenhá-lo, não? E você teria que saber quais regras de design para satisfazer. Essa informação está disponível abertamente?
Huang: Eu fiz uma pequena pesquisa sobre isso uma vez. Há algumas ferramentas de código aberto que podem ser capazes de te levar lá. As regras de design “SCMOS” são as mais funcionais. Eu acho que estas são as regras de design que Open-V estava tentando usar.
Como para software de design, você pode usar uma cadeia de ferramentas de código aberto baseada no Magic (Xcircuit, IRSIM, NetGen, Qrouter, e Qflow). Ou, se você puder pagar, você pode usar produtos comerciais de código fechado, como os da Cadence.
Eu usei ambos os fluxos de design Magic e Cadence. Eu pessoalmente gostei mais de usar o editor de layout de chips da Magic, mas o software Cadence é mais revestido de ferro, tendo sido usado para projetar tantos chips. E a ferramenta Cadence para simular os efeitos da resistência parasitária e da capacitância foi bem vetada.
Isso não quer dizer que você precisaria usar a Cadence ou algo parecido. Eu acho que você poderia usar Magic para construir alguns ICs que tenham tolerâncias realmente amplas – os tipos de ICs que você pode encontrar dentro de drivers LED e talvez até mesmo coisas como aparelhos auditivos. Pode ser um pequeno desafio fazer o design RF, porque as ferramentas de código aberto para simular efeitos parasíticos podem não estar à altura da tarefa. Mas há uma metodologia para refinar modelos que deve permitir que você desenvolva um design bem sucedido em duas ou três execuções de chip.
Tudo para dizer, talvez até o nó de tecnologia de 180 nanômetros (ou assim), você poderia escapar usando ferramentas de código aberto. Mais pequeno do que isso, porém, requer fazer coisas realmente engraçadas com a imagem da máscara e usar formas que não são mais apenas simples polígonos. E os kits de design de vários fornecedores para conseguir isso cada vez mais fechado.
180 nm é bastante “grande” pelos padrões de hoje. Mas se você realmente quisesse colocar alguma combinação especial de circuitos em um único molde de silício, você poderia fazer isso desta maneira. E isso poderia levar a alguns produtos novos que de outra forma seriam impossíveis com designs discretos. No entanto, esteja ciente de que a embalagem à escala de chips a nível de wafer (WL-CSP) permite que os integradores de circuitos impressos se aproximem bastante do que você poderia conseguir com o seu ASIC personalizado.
Quanto custaria esse ASIC personalizado a fazer? Estimar o custo de fabricação de máscaras e chips é difícil porque as listas de preços são confidenciais. Mas histórias que ouvi sugerem que um ASIC simples (digamos um que tenha alguns milímetros quadrados de tamanho, fabricado usando o nó de tecnologia de 250 nm) pode custar alguns milhares de dólares por algumas dezenas de amostras.
Esse preço é suficientemente atraente que uma vez brinquei com a idéia de fabricar uma CPU de 8 ou 16 bits que seria totalmente inspecionável. Pode apelar para aquelas pessoas realmente conscientes da segurança que querem ter certeza de que não há nada de engraçado no microprocessador que estão usando. Eu imaginei que ter uma coisa assim fabricada me traria alguns milhares de dólares. Isso é comparável ao custo de desenvolvimento de qualquer produto, na verdade. E certamente está dentro da gama de bootstrapping.
Spectrum: Ok, digamos que uma pequena inicialização usa ferramentas de design grátis e encontra dinheiro suficiente para fazer pelo menos algumas execuções de produção de chips. Os designers seriam capazes de desenhar circuitos de código aberto como blocos de construção, como os desenvolvedores de software rotineiramente fazem?
Huang: No momento, há um repositório bastante razoável de blocos de circuitos livres e abertos especificados no nível de transferência de registro (RTL), que é o que normalmente é usado no design de chips digitais. Isto inclui o microprocessador RISC-V, mas também designs como o lm32, mor1kx, e assim por diante.
Há também uma quantidade razoável de designs “wishbone-compatíveis”, incluindo coisas como pontes Ethernet e UARTs. O projeto OpenCores tem uma lista bastante razoável de tais blocos, alguns dos quais foram até incorporados em ASICs (a maioria dos quais, no entanto, visa FPGAs).
As para projetos com sinais mistos e analógicos, os projetos abertos são bastante escassos. A parte excitante sobre Open-V foi a sua vontade de abrir e compartilhar blocos analógicos e de sinais mistos. Estes designs não podem ser aplicados a nós de fabricação de tecnologia mais avançada, mas pelo menos na faixa “SCMOS”, há uma chance razoável de que os designs possam ser transformados em chips de trabalho.
Pode demorar muito tempo, no entanto, até que haja um bom conjunto de blocos de design analógico e de sinal misto por aí que tenham sido testados em ASICs, infelizmente. Outras coisas que podem nunca estar verdadeiramente disponíveis através de designs abertos incluem blocos de memória como SRAM, DRAM, flash, e fusíveis programáveis eletricamente. Isto porque estas coisas requerem um conhecimento de processo íntimo para executar – conhecimento que as fundições que fazem chips podem nunca liberar.
Tudo para dizer: Um pequeno jogador poderia certamente desenhar o seu próprio ASIC e tê-lo fabricado com nada mais do que algum engenho e alguns milhares de dólares. Mas ele não seria capaz de criar um design sofisticado ou usar um nó de tecnologia de ponta.