jak vytvořit svůj první program VHDL: Hello World!

když se učím nový programovací jazyk, vždy se rád začnu tím, že se naučím tisknout. Když zvládnete výstup “ Ahoj světe!“, víte, že máte prostředí pracující. Také vám ukáže základní kostru jazyka, minimální kód potřebný k vytvoření jakéhokoli výstupu.

možná si myslíte: ale VHDL je jazyk popisu hardwaru, jak může vůbec vydávat jakýkoli text? Budete potřebovat obrazovku připojenou k FPGA nebo tak něco a všechny druhy logiky mezi tím, a to by nebylo vůbec jednoduché. I když je to všechno pravda, zapomeňme na FPGA a ASIC jen na chvíli a zaměřme naši pozornost na jazyk VHDL.

tento blogový příspěvek je součástí základní série VHDL Tutorials.

VHDL lze považovat za paralelní programovací jazyk, a proto můžeme tento programátorský přístup použít k jeho učení. Vzhledem k tomu, že používáme jazyk k popisu digitálních obvodů, jediný způsob, jak jej můžeme spustit na našem počítači, je použití simulátoru a simulátor je určitě schopen výstup “ Hello World!“na obrazovku.

jak nainstalovat simulátor a editor VHDL zdarma

cvičení

toto video tutoriál vám ukáže, jak vytvořit svůj první program VHDL:

konečný kód, který jsme vytvořili:

entity T01_HelloWorldTb isend entity;architecture sim of T01_HelloWorldTb isbegin process is begin report "Hello World!"; wait; end process;end architecture;

výstup do konzoly simulátoru, když jsme stiskli tlačítko Spustit v ModelSim:

VSIM 2> run# ** Note: Hello World!# Time: 0 ns Iteration: 0 Instance: /t01_helloworld

analýza

na prvních dvou řádcích jsme deklarovali entitu. Entita modulu deklaruje své vstupy a výstupy. Aby bylo možné spustit modul v simulátoru, nemůže mít žádné vstupy ani výstupy. Proto náš modul nemá nic jiného než prázdné prohlášení entity.

dále jsme deklarovali architekturu modulu. Zatímco entita je rozhraním modulu s vnějším světem, architektura je jeho vnitřní implementací. Modul může mít několik architektur, které mohou být použity se stejnou entitou. V tuto chvíli bych se o tyto věci příliš nestaral, protože se jedná o pokročilé funkce VHDL.

uvnitř architektury jsme deklarovali proces. Prozatím můžeme považovat proces za vlákno v našem programu, kde se věci dějí postupně.

uvnitř procesu tiskneme “ Hello World!“pomocí klíčového slova report. Na dalším řádku je jeden wait;. Když simulátor zasáhne tento řádek, nic víc se nestane. Proces zde bude čekat navždy.

když jsme simulovali tento design v ModelSim, mohli jsme vidět, že “ Hello World!“byl vytištěn na výstup konzoly. Poté se už nic nestalo.

 Získejte exkluzivní přístup k cvičení a odpovědi!

stánek s jídlem

  • proces můžete považovat za podproces programu
  • příkaz report vytiskne text do konzoly simulátoru
  • provedení procesu bude čekat věčně na příkaz wait;

přejděte na další tutoriál “

Leave a Reply

Vaše e-mailová adresa nebude zveřejněna.