logo

Verilog přiřadit prohlášení

Příkazy Assign se používají k řízení hodnot na síti. A používá se také v Modelování toku dat .

Signály typu drát nebo datového typu vyžadují průběžné přiřazení hodnoty. Dokud je +5V baterie přivedena na jeden konec vodiče, součástka připojená k druhému konci vodiče získá požadované napětí.

Tento koncept je realizován příkazem assign, kde může být libovolný vodič nebo jiný podobný vodič (datové typy) řízen nepřetržitě s hodnotou. Hodnota může být buď konstanta nebo výraz obsahující skupinu signálů.

je kat timpf právnička

Syntax

Syntaxe přiřazení začíná klíčovým slovem assign, následovaným názvem signálu, což může být buď signál, nebo kombinace různých signálových sítí.

The síla pohonu a zpoždění jsou volitelné a většinou se používají pro modelování toku dat než pro syntetizaci do skutečného hardwaru.

co je oracle

Signál na pravé straně je vyhodnocen a přiřazen k síti nebo výrazu sítí na levé straně.

 assign = [drive_strength] [delay] 

Hodnoty zpoždění jsou užitečné pro specifikaci zpoždění pro hradla a používají se k modelování chování časování v reálném hardwaru. Hodnota určuje, kdy má být netto přiřazena k vyhodnocované hodnotě.

Pravidla

Při používání příkazu assign je třeba dodržovat některá pravidla:

  • LHS by měla být vždy skalární, vektorová nebo kombinace skalárních a vektorových sítí, ale nikdy skalární nebo vektorový registr.
  • RHS může obsahovat skalární nebo vektorové registry a volání funkcí.
  • Kdykoli se hodnota kteréhokoli operandu na RHS změní, LHS se aktualizuje o novou hodnotu.
  • Příkazy přiřazení se také nazývají průběžná přiřazení.

Přiřadit proměnné reg

Nemůžeme řídit ani přidělovat reg zadejte proměnné pomocí příkazu assign, protože proměnná reg je schopna ukládat data a není řízena nepřetržitě.

sourozenci kylie jenner

Signály Reg lze řídit pouze v procedurálních blocích, jako je vždy a počáteční.

Implicitní průběžné přiřazování

Když je příkaz assign použit k přiřazení dané sítě s nějakou hodnotou, nazývá se to an explicitní úkol

Pokud je deklarováno přiřazení, které má být provedeno během sítě, nazývá se an implicitní úkol.

 wire [1:0] a; assign a = x & y; // Explicit assignment wire [1:0] a = x & y; // Implicit assignment 

Kombinovaný logický design

Zvažte následující digitální obvod vyrobený z kombinačních hradel a odpovídajících Verilog kód.

unsigned int c programování
Verilog přiřadit prohlášení

Kombinační logika vyžaduje, aby vstupy byly nepřetržitě řízeny, aby se zachoval výstup, na rozdíl od sekvenčních prvků, jako jsou klopné obvody, kde je hodnota zachycena a uložena na okraji hodin.

Přiřazený příkaz splňuje účel, protože výstup o se aktualizuje vždy, když se změní některý ze vstupů na pravé straně.

 // This module takes four inputs and performs a Boolean // operation and assigns output to o. // logic is realized using assign statement. module combo (input a, b, c, d, output o); assign o = ~((a & b) | c ^ d); endmodule 

Hardwarové schéma

Po vypracování návrhu a syntéze se kombinační obvod chová stejně jako modelovaný příkazem assign.

Verilog přiřadit prohlášení

Signál o se stane 1, kdykoli se kombinační výraz na RHS stane pravdivým.

Podobně se o změní na 0, když je RHS nepravda. Výstup o je X od 0ns do 10ns, protože vstupy jsou X ve stejnou dobu.