Monday, January 20, 2014

Konstruksi Dan VHDL Disintesis Template


VHDL sintesis template
VHDL sering digunakan untuk dua tujuan yang berbeda: simulasi desain elektronik dan sintesis dari desain tersebut. Sintesis adalah proses di mana sebuah VHDL disusun dan dipetakan ke dalam sebuah teknologi penerapan seperti FPGA atau ASIC. Banyak vendor FPGA memiliki gratis (atau murah) alat untuk mensintesis VHDL untuk digunakan dengan chip mereka, di mana alat ASIC seringkali sangat mahal.

Tidak semua konstruksi dalam VHDL cocok untuk sintesis. Sebagai contoh, sebagian besar konstruksi yang menangani secara eksplisit dengan waktu seperti menunggu selama 10 ns, tidak disintesis meskipun berlaku untuk simulasi. Sementara alat sintesis yang berbeda memiliki kemampuan yang berbeda, ada subset disintesis umum VHDL yang mendefinisikan bahasa apa konstruksi dan idiom peta ke dalam perangkat keras umum bagi banyak alat sintesis. 1.076,6 IEEE mendefinisikan subset dari bahasa yang dianggap sebagai subset sintesis resmi. Hal ini umumnya dianggap sebagai "praktek terbaik" untuk menulis kode yang sangat idiomatic untuk sintesis sebagai hasil dapat benar atau suboptimal untuk non-standar konstruksi.

Template MUX
The multiplexer , atau 'MUX' seperti yang biasa disebut, adalah konstruksi sederhana yang sangat umum dalam desain hardware. Contoh di bawah ini menunjukkan sederhana dua banding satu MUX, dengan input A dan B, pemilih S dan output X. Perhatikan bahwa ada banyak cara lain untuk mengekspresikan MUX sama dalam VHDL.

X <= A bila S = '1' lain B;
Template latch


Sebuah latch transparan pada dasarnya adalah satu bit memori yang diperbarui bila memungkinkan sinyal yang dibangkitkan. Sekali lagi, ada banyak cara lain ini dapat dinyatakan dalam VHDL.

Latch Template 1:

Q <= D bila Enable = '1' lain Q;



Kait Template 2:

proses (D, Aktifkan)

mulai

jika Enable = '1' maka

Q <= D;

berakhir jika;

proses akhir;

D-type flip-flop

D-type flip-flop sampel sinyal masuk pada naik (atau turun) tepi jam. Contoh ini memiliki asynchronous, ulang aktif-tinggi, dan sampel di sisi kenaikan jam.

DFF: proses (RST, CLK)

mulai

jika RST = '1' maka

Q <= '0';

elsif rising_edge (CLK) kemudian

Q <= D;

berakhir jika;

proses akhir DFF;

Cara lain yang umum untuk menulis perilaku tepi-dipicu dalam VHDL adalah dengan 'acara' atribut sinyal. Sebuah tanda kutip tunggal harus ditulis antara nama sinyal dan nama atribut.

DFF: proses (RST, CLK)

mulai

jika RST = '1' maka

Q <= '0';

'acara dan CLK =' elsif CLK 1 'maka

Q <= D;

berakhir jika;

proses akhir DFF;


Contoh berikut adalah up-counter dengan reset asynchronous, beban paralel dan lebar dikonfigurasi. Ini menunjukkan penggunaan unsigned 'tipe, tipe konversi antara' unsigned 'dan' std_logic_vector 'dan generik VHDL. Para generik sangat dekat dengan argumen atau template dalam bahasa pemrograman tradisional lainnya seperti C + +.

library IEEE;

menggunakan IEEE std_logic_1164 semua..;

menggunakan IEEE numeric_std semua, -.. untuk tipe unsigned

COUNTER entitas

generik (

LEBAR: di alam: = 32);

port (

RST: di std_logic;

CLK: di std_logic;

LOAD: di std_logic;

DATA: di std_logic_vector (LEBAR - 1 downto 0);

Q: keluar std_logic_vector (LEBAR - 1 downto 0));

mengakhiri COUNTER entitas;

arsitektur RTL COUNTER adalah

sinyal CNT: unsigned (LEBAR - 1 downto 0);

mulai

proses (RST, CLK) adalah

mulai

jika RST = '1' maka

CNT <= (orang lain => '0');

elsif rising_edge (CLK) kemudian

jika LOAD = '1' maka

CNT <= unsigned (DATA); - jenis dikonversi menjadi unsigned

lain

CNT <= CNT + 1;

berakhir jika;

berakhir jika;

proses akhir;



Q <= std_logic_vector (CNT); - jenis diubah kembali ke std_logic_vector


akhir arsitektur RTL;

Counter lebih kompleks dapat menambahkan jika / kemudian / lain laporan dalam rising_edge (CLK) elsif untuk menambahkan fungsi-fungsi lain, seperti menghitung memungkinkan, berhenti atau berguling di beberapa nilai hitung, menghasilkan sinyal output seperti sinyal jumlah terminal, dll Perawatan harus diambil dengan pemesanan dan bersarang kontrol tersebut jika digunakan bersama-sama, untuk menghasilkan prioritas yang diinginkan dan meminimalkan jumlah tingkat logika diperlukan.


Kamu juga dapat melihat artikel terkait :

Related Posts

Konstruksi Dan VHDL Disintesis Template
4/ 5
Oleh