Verilog

Verilog , hänen täydellinen nimensä Verilog HDL on kuvaus kieli laitteisto on logiikkapiirit on elektroniikkaa , jota käytetään suunnittelun ASIC ( sovelluskohtaisia integroituja piirejä , omistettu piirit) ja FPGA ( FPGA ).

Englanninkielinen lyhenne HDL - Hardware Description Language - tarkoittaa laitteiston kuvauksen kieltä . Verilog HDL: ää ei tule lyhentää VHDL: ksi, tätä lyhennettä käytetään kilpailevalla kielellä VHSIC Hardware Description Language .

Historiallinen

Alun perin se oli Cadence Design Systems -yrityksen kehittämä oma kieli käytettäväksi logiikkasimulaattoreissaan , mutta VHDL: n ( erittäin nopea integroitujen piirien laitteistokuvauskieli , toinen kieli, jolla on samanlaiset tavoitteet) kasvava menestys sai sen suunnittelijat tekemään Verilog avoin standardi ; se on IEEE 1364 -standardi, josta on useita versioita, joita on rikastettu tarjoamaan VHDL: ää vastaavia toimintoja .

Verilog yhdistää kaksi näkökohtaa:

Verilogin syntaksen sanotaan olevan suurelta osin C- ohjelmointikielen innoittama , vaikka yhtäläisyys rajoittuu tosiasiallisesti lausekkeisiin. Tämä selittää osittain sen menestyksen ja nopean leviämisen insinöörien yhteisössä, jotka ovat jo oppineet C-kielen .

Rakenne Verilog kieli mahdollistaa kuvata tulot ja lähdöt elektronisten moduulien , jotta voidaan määritellä virtuaalinen loogisia portteja . Moduulien yhdistelmä antaa mahdollisuuden tuottaa monimutkaisia ​​virtuaalisia elektronisia kaavioita, jotka voidaan sitten testata simulaatio-ohjelmassa. Tällaisten testien tarkoituksena on:

Esimerkki Verilog-piiristä

Tässä on esimerkki logiikkapiiristä (tässä laskuri ), jota kuvataan RTL: ssä ( Register Transfer Level ), toisin sanoen syntetisoitavissa:

module Div20x (rst, clk, cet, cep, count,tc); // TITLE 'Divide-by-20 Counter with enables' // enable CEP is a clock enable only // enable CET is a clock enable and // enables the TC output // a counter using the Verilog language parameter size = 5; parameter length = 20; input rst; // These inputs/outputs represent input clk; // connections to the module. input cet; input cep; output [size-1:0] count; output tc; reg [size-1:0] count; // Signals assigned // within an always // (or initial)block // must be of type reg wire tc; // Other signals are of type wire // The always statement below is a parallel // execution statement that // executes any time the signals // rst or clk transition from low to high always @ (posedge clk or posedge rst) if (rst) // This causes reset of the cntr count <= 5'b0; else if (cet && cep) // Enables both true begin if (count == length-1) count <= 5'b0; else count <= count + 5'b1; // 5'b1 is 5 bits end // wide and equal // to the value 1. // the value of tc is continuously assigned // the value of the expression assign tc = (cet && (count == length-1)); endmodule

Huomautuksia ja viitteitä

Katso myös

Aiheeseen liittyvät artikkelit

Ulkoiset linkit