Melhor resposta
Na modelagem de fluxo de dados estruturais, as funções de projeto digital são definidas usando componentes como um inversor , um MUX, um somador, um decodificador, portas lógicas digitais básicas, etc. É como conectar e organizar diferentes partes de circuitos disponíveis para implementar as funções que você está procurando.
Implementação de meio somador usando estrutural modelagem de fluxo de dados: entrada A, B; soma de saída, transporte; xor (.in1 (A), .in2 (B), .out (soma)); e (.in1 (A), .in2 (B), .out (carry));
A modelagem comportamental do fluxo de dados é usada para descrever o comportamento dos circuitos digitais. O Designer descreve a funcionalidade do design escrevendo um tipo de código de algoritmo. É usado para explicar o fluxo de dados usando várias expressões booleanas, como & (e), | (ou), ~ (inverter), ^ (xor),? (Condicional) etc … duas subcategorias desse tipo de modelagem esquema é o fluxo contínuo de dados e o fluxo de dados procedurais.
1. Fluxo de dados contínuo Neste tipo de modelagem de fluxo de dados, a atribuição de dados às saídas é contínua. Isso será implementado usando instruções “ assign ” em Verilog como mostrado no exemplo.
input A, B; soma de saída, transporte; fio soma, transporte; atribuir soma = A ^ B; assign carry = A & B;
É uma atribuição contínua e, portanto, qualquer mudança na entrada afetará a saída imediatamente devido à ausência de ações de controle, ou seja, lista de sensibilidade. Aqui, as variáveis de saída devem ser definidas como tipo “ fio ” porque são continuamente orientadas pela lógica digital definida no RHS.
2. Fluxo de dados procedimentais Aqui, as atribuições de dados não são realizadas continuamente, em vez disso, ocorrem em eventos específicos especificados na lista de sensibilidade. Este tipo de esquema de modelagem é implementado usando blocos procedurais como “ sempre ” ou “ inicial “conforme mostrado no exemplo.
insira A, B; soma de saída, transporte; reg soma, transporte; sempre @ (A) começa a soma A + B; transportar A & B; fim
O RHS de todas as expressões é calculado continuamente, mas sua atribuição ao LHS acontece apenas em qualquer mudança na entrada A, mas não B. Neste caso, as variáveis de saída devem ser definidas como ” reg ” porque eles mantêm o valor anterior até que uma nova atribuição ocorra após qualquer alteração na lista de sensibilidade especificada.
Espero que isso esclareça suas dúvidas.
Resposta
Fluxo de dados e comportamento não são mutuamente exclusivos. Nem é fluxo de dados e funcional, ou fluxo de dados e estrutural. Visto de forma clássica, o “fluxo de dados” descreve uma arquitetura onde uma mudança no valor de um item de dados (variável) aciona automaticamente o recálculo de todos os outros dados dependentes dele.
Muitos classificam incorretamente (IMHO) qualquer arquitetura onde o fluxo de dados é gerenciado ao invés do gerenciamento de fluxo de controle para ser “fluxo de dados”; mas o termo é usado dessa forma com regularidade suficiente para permitir que seja uma definição alternativa.
Olhando para o design “Comportamental”, podemos classificá-lo como uma abordagem de design onde os módulos são modelados em um alto nível de abstração, onde o designer define o comportamento desejado do módulo e as ferramentas de síntese decompõem esse comportamento em modelos RTL ou Estruturais. Na modelagem comportamental, a função é definida algoritmicamente com tempo e carregamento de nó amplamente ignorados. Claramente, os comportamentos podem ser modelados de forma que o fluxo de dados clássico seja acomodado.
Menos abstrato é “RTL” ou modelagem de lógica de transferência de registro. É aqui que muitos profissionais dizem que o fluxo de dados começa. A maioria das ferramentas de síntese atuais decompõe o código comportamental em RTL. Um bom exemplo são as ferramentas C (ou C ++) em RTL, como ImpulseC, Cynthesizer, etc.).
Menos abstrato é a modelagem “Estrutural”, onde o design é declarado quase exclusivamente como instanciações de componentes com registros e fios de conexão.
Claro como lama, certo?