Fadas japonesas mostram gatilho mestre-escravo em novo mangá em eletrônica digital

Agora, a editora da DMK-Press está publicando uma tradução russa do mangá japonês em 2013 sobre circuitos digitais criados por Amano Hideharu e Meguro Koji. Apesar da forma frívola de apresentação, a essência deste livro é muito sólida. Por exemplo, ele parte de microcircuitos antigos com um pequeno grau de integração e os vincula rapidamente à moderna linguagem de descrição de hardware Verilog e aos circuitos lógicos programáveis ​​(FPGAs). Além disso, o mangá define claramente por que os esquemas combinacionais e seqüenciais são necessários e fornece uma idéia dos métodos de otimização.

O mangá evita os erros de muitos de seus antecessores. Um desses erros foi cometido por Charles Petzold no livro “Code”, que introduziu lógica seqüencial não nos gatilhos D controlados pela borda do sinal do relógio (D-flip-flop disparado por borda), mas nos gatilhos D com operação nivelada (travas, trava D sensível ao nível), embora posteriormente tenha mudado para os gatilhos corretos. O erro provavelmente ocorreu devido ao fato de Charles Petzold, que ficou famoso como autor dos tutoriais de programação da GUI no Microsoft Windows, não ser um desenvolvedor de eletrônica que praticava, e as travas eram "mais fáceis" para ele do que os gatilhos montados na frente. O problema é que as travas são pouco compatíveis com a análise estática de atrasos na síntese lógica, a principal tecnologia para projetar circuitos digitais dos últimos 30 anos. Os sistemas em um chip dentro de gadgets como um iPhone usam gatilhos D acionados por estado em 99% dos casos como elementos de estado, e travas são usadas apenas em casos muito especiais. Dar aos iniciantes a construção de circuitos nas travas - isso significa enganá-los.

Nesse sentido, mangá é melhor que Petzold. É assim que o mangá explica elegantemente o gatilho mestre de dois estágios, o escravo D, controlado pela frente do relógio. Isso é feito com a ajuda das fadas "Hee hee hee" e das fadas "Ha ha ha":



A seguir, destaco meus comentários em azul para que eles não se fundam com as citações do mangá:

Mas vamos começar em ordem. O mangá sobre circuitos digitais começa com microcircuitos, e ela menciona imediatamente os microcircuitos antigos de pequeno grau de integração, com vários elementos lógicos, e os modernos, com milhões e bilhões de transistores:





O mangá explica o trabalho de elementos lógicos usando analogias simples e agradáveis ​​para adolescentes:



Por que sequer mencionar microcircuitos de baixo grau de integração, que estão desatualizados há 50 anos? O fato é que, apesar de sua idade venerável, os exercícios em uma placa de ensaio com esses microcircuitos são a maneira mais intuitiva de mostrar aos alunos como um elemento lógico funciona. Você não precisa instalar software para modelagem ou síntese de FPGAs. Tudo o que você precisa é de uma placa de ensaio, bateria de 9 volts, microcircuito, fios, LEDs e botões:



Alguns professores dos círculos escolares acreditam que todos esses exercícios devem ser substituídos pelo Arduino. Essa opinião surgiu nos anos 1970-1980, quando microcontroladores e processadores embarcados entraram em formação. Um aluno típico de 1988 não podia gastar centenas de milhares de dólares para fabricar seu chip na fábrica, e chips antigos com um pequeno grau de integração em produtos industriais reais eram usados ​​cada vez menos. Portanto, na época, eles acenaram com a lógica digital para crianças em idade escolar e jogaram toda a sua energia na programação de ensino. Aqui está um comentário no Facebook que descreve essa opinião nos dias de hoje:



No entanto, 30 anos depois, tudo mudou novamente:


1. Primeiro, no mesmo ano de 1988, surgiu uma tecnologia para projetar microcircuitos usando síntese lógica, a partir do código nas linguagens de descrição de hardware - Verilog e VHDL.

2. Ao mesmo tempo, na década de 1980, surgiram os circuitos lógicos programáveis ​​(FPGAs) - matrizes de elementos lógicos reconfiguráveis ​​com os quais você pode custar circuitos digitais, simplesmente alterando o conteúdo da memória de configuração dentro do FPGA.

3. Na década de 1990, o ensino de HDL, síntese lógica e FPGAs foi incluído nos programas de todos os departamentos de eletrônica das universidades ocidentais, embora na Rússia e na Ucrânia, devido ao caos pós-perestroika, esse processo fosse mais lento.

4. Na década de 2000, a velocidade dos processadores tradicionais deixou de crescer e os profissionais de marketing começaram a prever a fragmentação do mercado de processadores embarcados (o que aconteceu - nuvem, IoT), bem como o aparecimento de combinações de processadores e computadores especializados para várias tarefas (o que aconteceu - primeiro, é rápido gráficos móveis e chips especializados para mineração de criptomoedas, visão computacional e aceleradores de redes neurais).

5. Agora, em 2010, os preços dos conselhos de FPGA caíram ao nível em que ficaram disponíveis para as crianças em idade escolar. Ao mesmo tempo, a indústria exige um grande número de novos engenheiros para criar enormes microcircuitos com redes neurais. Mesmo que você trabalhe toda a sua vida em programação, para entender os novos sistemas, você precisa conhecer os princípios de operação do equipamento: circuitos combinacionais e seqüenciais, máquinas de estado, temporização, tubulação, etc. Então você pode entender se vale a pena processar os dados com um programa ou unidade de hardware regular.

Portanto, microcircuitos com um pequeno grau de integração permitem "tocar" diretamente nas primitivas de hardware. E imediatamente após explicar sobre os esquemas de um pequeno grau de integração, o mangá apresenta as linguagens de descrição de hardware e o FPGA:





Depois de descrever os elementos lógicos, o mangá mostra como criar um esquema combinatório útil para a votação principal:







Então esse esquema é otimizado. Na minha opinião, o mangá dedica muito tempo à otimização combinatória. Mas vale lembrar que os japoneses escreveram o mangá, e eles têm um princípio na cultura 切磋琢磨 (sessão takuma) - polir algo (como uma espada) até que se torne perfeito. Portanto, no mangá há otimização baseada no senso comum e otimização baseada nos diagramas de Carnot. A síntese lógica das linguagens de descrição de hardware faz essas otimizações automaticamente:





O mangá também possui um esquema romântico, ou seja, uma cena:




O sistema de votação majoritária pode ser facilmente montado em microcircuitos com um pequeno grau de integração. Pode-se argumentar que observar os elementos combinatórios AND-OR-NOT / AND-OR-NOT na tábua de pão não é muito interessante, pois a álgebra booleana também é explicada na lição de programação usual. Pode-se argumentar que, embora as crianças de 7 anos possam entender E-OU-NÃO, algumas crianças em idade escolar tropeçam em uma barreira mental ao tentar entender os D-triggers. Nesse caso, uma demonstração visual se torna mais valiosa.

Infelizmente, o aluno não pode "tocar" as mãos diretamente com gatilhos D dentro do FPGA. Existem dezenas de milhares deles em FPGAs. No Arduino, esse objeto não surge. E em uma placa com um microcircuito de pequeno grau de integração, o D-trigger pode ser assim:



E aqui está como explicar os circuitos seqüenciais e o mangá D-trigger. Observe que o tradutor japonês usou a palavra "seqüencial" para traduzir "sequencial", embora o termo "sequencial" tenha sido estabelecido na literatura russa sobre circuitos digitais:



Aqui seria possível escrever mais especificamente que esquemas seqüenciais, diferentemente dos combinacionais, permitem ações repetidas e eventos esperados. Em outras palavras, eles tornam o computador "inteligente". Sem eles, usando um computador, você só pode calcular os valores de expressões aritméticas simples:



É lamentável que o mangá não diga nada sobre atrasos nos circuitos combinacionais e no cálculo da frequência máxima do relógio. Isso pode ser inserido aqui neste local:



Espero que este mangá na Rússia tenha sucessores que façam algum tipo de desenho animado com Ivan Tsarevich e Vasilisa the Beautiful, que introduziriam atrasos na distribuição e um caminho crítico, por exemplo, com base nas informações do livro Harris & Harris. Aqui estão os slides apropriados de materiais adicionais para o livro:







Aqui está um slide direto que diz que para quase todos os elementos de estado é usado um gatilho D [exceto nos casos em que os iniciantes não encontram nada, por exemplo, uma trava para receber um relógio fechado sem ruído de pulso nos circuitos para economizar energia - D- sensível ao nível de energia trava para relógio fechado sem falhas usado em projetos de baixa potência].



Lembre-se de que Petzold usou trincos D para sua introdução, o que está errado. Mas não apenas Petzold comete erros neste lugar. Certa vez, fiz um post no LiveJournal com uma imagem do contador abaixo do somador e do gatilho D, após o qual um programador russo do estado do Colorado me disse dois dias depois que era mais fácil criar contadores nos gatilhos T. Eu disse a ele que ele se lembrava corretamente dos gatilhos T desde a infância na década de 1970, mas agora no século 21, os desenvolvedores de iPhone criam contadores a partir dos gatilhos D, porque a situação do contador é nos gatilhos T, nos quais o sinal de dados é usado como sinal de relógio , não se encaixa bem na análise de tempo em chips de bilhões de transistores (se você não concorda comigo, divida minha opinião com links para bibliotecas ASIC do TSMC, Synopsys Design Compiler etc.):



Agora já vimos uma série de fotos sobre o trabalho de um gatilho D de duas etapas (mestre-escravo) com fadas:





Com um gráfico de tempo facilmente compreensível - os dados são registrados apenas no momento de uma margem positiva do gatilho D, o resto do tempo são ignorados:



Agora, o mangá segue o exemplo do uso de um gatilho D para construir uma simples máquina de estado - um dispositivo para atirar ossos eletrônicos. Honestamente, não estou completamente satisfeito com esta parte do livro. Diremos isso, uma máquina degenerada de estados finitos, na qual os estados entram em círculo, parados um pouco - o botão Parar. Se houvesse vários autômatos no livro de exemplos, tudo estaria bem, mas defini-lo como o único exemplo está errado. Ele não mostra toda a classe de problemas que podem ser resolvidos usando máquinas de estados finitos. Abaixo mostrarei como eu o complementaria.



Diagrama de estado 0-1-2-3-4-5:



Estados binários que são escritos em três D-flip-flops:



Um esquema combinatório que recebe um novo estado do antigo:



E, finalmente, o mangá mostra como criar o mesmo esquema, não desenhando com o mouse na tela, mas sintetizando a linguagem de descrição de hardware da Verilog. Embora esse código pareça um código de linguagem de programação como Pascal ou Java, ele possui uma natureza fundamentalmente diferente. O objetivo do código no verbo é se transformar em um circuito, com fios e transistores. E o código na linguagem de programação é compilado em uma cadeia de instruções, zeros e aqueles armazenados na memória [fica claro que tanto o Verilog quanto o Java podem ser interpretados + o código do Verilog pode se transformar em zeros e os da configuração do FPGA + o Java pode ser traduzido para o Verilog e também se tornam um diagrama, mas estes são detalhes que não contribuem para o entendimento inicial]:







Agora, por assim dizer, suplementei o exemplo da máquina de estados finitos I. Eu faria um exemplo mais interativo de uma máquina de estados finitos, por exemplo, usando a analogia com a chamada "sala chinesa". Aqui está minha descrição da sala chinesa, excluída pelo editor do meu artigo há uma década no The New Times (esta revista não é apenas sobre política, mas também possui tecnologia popular):
Em 1980, um dos críticos da inteligência artificial, John Searle, apresentou um argumento elegante chamado "sala chinesa". Suponha que, no futuro, houvesse uma versão do programa Eliza que falasse chinês tão bem que os chineses não pudessem distinguir um computador de uma pessoa. Agora, suponha que alguém copie esse programa em um livro grosso com instruções mecânicas para uma pessoa - se você vir o personagem A e antes de o personagem B, remova-o da caixa C. Agora colocamos uma certa pessoa que não sabe chinês em uma sala fechada com este livro e o cutucará sob as placas da porta com hieróglifos contendo perguntas em chinês. Seguindo as instruções mecânicas do livro, uma pessoa encontrará em uma caixa e afastará outros sinais com hieróglifos. Da perspectiva de um observador externo, a sala "entenderá" e "falará" em chinês. Mas quem é o portador dessa mente? Afinal, o artista não entende chinês?

John McCarthy e outros veteranos da inteligência artificial declararam imediatamente que a razão e até a consciência se manifestariam em uma "personalidade virtual" ou em um "processo" realizado nesta sala. Um dos argumentos elegantes contra John Searle foi apresentado pelos filósofos Paul e Patricia Churchland. Como sabemos pela física, argumentou Churchlands, a luz é uma onda eletromagnética. Suponha que um cético comece a mover um ímã com a mão, não veja a luz e comece a afirmar que a luz é impossível. De fato, para obter a luz, você precisa acenar um ímã a uma velocidade de 450 bilhões de golpes por segundo. Assim, argumentou Churchlands, a consciência racional surgiria na "sala chinesa" se o artista fosse suficientemente ágil.

É interessante que o escritor ucraniano de ficção científica Anatoly Dneprov tenha descrito o análogo de "The Chinese Room" nos anos 50 na história "The Game".
Então aqui. Para minhas próprias palestras e materiais, criei um exemplo em que uma máquina de estado finito (FSM) em resposta a uma sequência de qualquer número de caracteres "urso" e "árvore", com o caractere final "ciência" - produz uma sequência de caracteres "Sibéria". Este é o "quarto chinês" mais simples:



Aqui está o diagrama de estado dela:



A partir deste diagrama, você pode construir um circuito e implementá-lo em uma placa com FPGA.

Outro dia, usei trechos deste mangá de Amano Hideharu e Meguro Koji quando dei uma palestra no Skype da Califórnia para 150 estudantes da Kazan Innopolis. Os alunos começam a estudar arquitetura de computadores e precisam romper a barreira do mal-entendido inicial da lógica digital. Para isso, o mangá é muito bom, especialmente se você o usar em combinação com livros didáticos como Harris & Harris "Digital Circuitry and Computer Architecture".

Aqui está o vídeo desta palestra:


Os slides desta e da próxima palestra podem ser baixados aqui:

http://bit.ly/2018-01-25-verilog-1-innopolis-yuri-panchul

http://bit.ly/2018-02-01-verilog-2-innopolis-yuri-panchul

Agora, muitos leitores de posts sobre FPGAs costumam ter a pergunta: "Por que isso é necessário, porque há mais trabalhos em Java?"

Isso pode ser respondido: de acordo com o site glassdoor em San Jose, Califórnia, os projetistas de circuitos digitais são mais valorizados que os desenvolvedores de Java:





E se o leitor disser: “E o que eu preciso de San Jose? Estou na Rússia e não ameaço ir a San Jose ”, você pode dar um novo exemplo de que os recém-casados ​​de São Petersburgo ficaram em primeiro lugar na competição Intel InnovateFPGA na Europa, depois do segundo lugar na final mundial em San Jose. Aqui eles estão sentados no escritório da Intel em San Jose, alguns dias atrás. Por fazer o projeto no FPGA. Talvez para um projeto em Java, a Intel tenha trazido alguém em San Jose com a apresentação do prêmio, mas eu pessoalmente não conheço esses exemplos.



Vladislav Sharshin, Andrey Papushin, Yelena Kirichenko - www.innovatefpga.com/cgi-bin/innovate/teams.pl?Id=EM076



Source: https://habr.com/ru/post/pt422431/


All Articles