29 de março, um engenheiro chamado Gerard Williams III renunciou à Apple. Esta notícia foi publicada imediatamente pela CNET e por outras dezenas de outras publicações em todo o mundo, não apenas técnicas, mas também financeiras. O que esse engenheiro fez com que sua partida causou empolgação entre os especuladores de ações? Ele projetava processadores no iPhone da Apple há 9 anos, antes trabalhava no ARM há 12 anos, antes projetava o DSP na Texas Instruments e antes desenvolvia circuitos FPGA na Intel. Em todos os lugares, ele usou a tecnologia de design no nível de transferências de registros, usando as linguagens de descrição de hardware Verilog e VHDL.
Exemplos mais próximos da Rússia? Na foto à direita: Ilya Neganov, um moscovita de 25 anos de idade, levou um livro da Harris & Harris em 2011 (a última versão pode ser baixada
aqui ou
aqui ), projetou um processador simples, agora trabalha na Apple, trabalha com a Apple, cria um verbo de GPU, voa de avião nos fins de semana. Abaixo estão alguns recém-casados de São Petersburgo que projetaram na câmera e processamento de imagens FPGA a partir de uma câmera e receberam um prêmio no concurso Innovate FPGA. Eles passaram a lua de mel na sede da Intel em Santa Clara. Em seguida, camaradas de Kiev, dois dos quais venceram bronze nas finais europeias do Innovate FPGA. E, finalmente, duas crianças em idade escolar, das séries 5 e 9, que fazem seus primeiros exercícios com microcircuitos de pequeno grau de integração na tábua de pão e, em seguida, prosseguem para exercícios no verbo e FPGA.
Estes são cinco pontos na trajetória do aluno para Gerard Williams, o Terceiro. A trajetória é bastante pesada, já que a barreira inicial para entrar no design dos microcircuitos digitais é maior do que para entrar na programação. Neste post, falaremos sobre como facilitar a seção inicial da trajetória para estudantes russos e outros.

Nessas duas semanas, um grupo de colegas da RUSNANO, Wave Computing, MIET, IVA Technologies, da Escola Superior de Economia MIEM, Amperka, Editora DMK-Press realiza o seguinte evento: Primeiro, os alunos fazem um curso teórico on-line (peças
de transistor a microcircuito ,
o lado lógico do digital) circuitos ” ,
“ O lado físico dos circuitos digitais ” ), no qual eles se familiarizam com a chamada rota RTL2GDSII - um grupo de tecnologias que os engenheiros usam em empresas eletrônicas para projetar chips. Em seguida, realizamos
aulas práticas com circuitos lógicos reconfiguráveis em FPGA . Dessa maneira, por exemplo, ele ensina o MIT no curso 6.111, mas o tentamos de uma forma muito básica para crianças em idade escolar do tipo de olimpíada.
O curso teórico é importante para não perder tempo em um curso prático que explique a teoria do design no nível das transferências de registros, mas simplesmente passe três noites duas horas jogando com cartões FPGA, que você poderá levar consigo. Além disso, um curso teórico vincula exercícios FPGA a produtos de massa que usam chips ASIC.
O curso prático será outro experimento (os anteriores foram realizados por diferentes professores em Níjni Novgorod, Kiev, Alma-Ata, Cazaquistão, Minsk, Novosibirsk, Tomsk e Irkutsk) para descobrir como fazer exercícios com Verilog e FPGA interessantes e úteis para iniciantes.
Vale a pena fazer exercícios com FPGAs com microcircuitos com um pequeno grau de integração? Existem opiniões diferentes sobre esse assunto: Ilya Kudryavtsev, reitora da Universidade de Samara, acredita que não vale a pena, é melhor fornecer imediatamente a tecnologia mais recente em 2019, em vez do antigo CMOS 4000 em uma placa de ensaio que era relevante há 50 anos. Stanislav Zhelnio, engenheiro de design de neurochips da IVA Technologies, acredita que vale a pena, porque, caso contrário, os alunos percebem os FPGAs como outro microcontrolador como o Arduino, mas simplesmente com uma estranha linguagem de programação Verilog. De fato, um aluno ou aluno deve perceber imediatamente que o verílogo descreve o esquema, não o programa (a cadeia de instruções) e os exercícios com o CMOS 4000 ajudam a estabelecer a imagem correta no cérebro.
Se você escrever no Verilog, como se fosse um programa, não um circuito, o código funcionará no simulador, mas não será sintetizado, e mesmo se for sintetizado, você terá um esquema louco (em termos de tempo ou tamanho).
Portanto, uma das abordagens é assim: projetar o circuito em microcircuitos de pequeno grau de integração (contadores, registradores de turnos, somadores, decodificadores), depois repeti-lo em um verbo, sintetizar e registrar no FPGA.
Alguns dizem: por que não desenhar um diagrama para o FPGA com o mouse na tela (entrada esquemática) e inseri-lo no FPGA antes de fazer exercícios no veril? A abordagem do mouse tem três desvantagens:
- Requer software de aprendizado, que leva mais tempo do que apenas colocar componentes em uma placa de ensaio.
- A experiência de um LED soprado ou de entrada flutuante sem um resistor pull-up em uma placa de ensaio é mais valiosa do que uma experiência estéril em uma entrada esquemática.
- Os designers de lógica digital não usam uma entrada esquemática desde o início dos anos 90; todo mundo escreve em veril, às vezes em VHDL.
Sim, o CMOS 4000 e o 74XX estavam desatualizados nos anos 70, foram substituídos pelos chips PAL, GAL, PLD e então integrados. Portanto, na década de 1970, eles eram usados em canecas para crianças e, na década de 1980, estavam fora de moda, porque pararam de pagar salários por sua capacidade de usá-los, mas ninguém desde então descobriu como demonstrar mais claramente, por exemplo, a função de gatilho D, portanto como prequel do FPGA / FPGA, eles podem ser aplicados. O MIT faz o mesmo -
veja o laboratório nº 1 aqui .
Após exercícios com microcircuitos de pequeno grau de integração e seus equivalentes no verbo em FPGAs, você pode complicar tarefas e fazer em um FPGA o que levou dezenas, centenas ou milhares de microcircuitos de pequeno grau de integração, que discutirei mais adiante.
Aqui está um exemplo de lógica combinacional, um codificador de prioridade, em microcircuitos com um pequeno grau de integração:
E aqui está a aparência desse codificador de prioridade na linguagem de descrição de hardware da Verilog:
module priority_encoder
(
input [2:0] in,
output reg [1:0] out
);
always @*
begin
casez (in)
3'b1?? : out = 2'd1;
3'b01? : out = 2'd2;
3'b001 : out = 2'd3;
default : out = 2'd0;
endcase
end
endmodule
, , :
:

-:
, SPI, I2C, UART , , , VGA. FPGA :
, .VGA , .

— 7- , , 4x4, ( ), ( ).
-
c , ,
Hacker's Delight.
, , .
schoolMIPS.
-
17-19 . , — RUSNANO USA. , 3000 Sand Hill Road -. - Apple, Google Amazon.
- . , RTL2GDSII, , , , .
