VHDL: fungsi penyelesaian masalah

T

toninlg

Guest
Kode:data_in: InOut STD_LOGIC_VECTOR (7 downto 0)

sinyal data: STD_LOGIC_VECTOR (7 downto 0);

 
Bagaimana FPGA sebenarnya Anda akan tahu bahwa 'data_in' dalam 'Z' negara
karena '111111 'itu sangat mirip dengan' zzzzz '?
Anda dapat melakukannya hanya dengan pengukuran, tapi untuk apa FPGA?

Saya pikir Anda harus membuat sinyal tambahan, yang akan
mengkonfirmasikan data yang valid data_in:

sinyal valid_data std_logic: '0 '; '0' data yang tidak valid, '1 'data_valid

if (valid_data = '1 ') maka data <= data_in; itu benar tali, tapi asyncronous

Lebih dapat diandalkan dan akurat (di tepi naik CLK):

if (clk'event dan CLK = '1 'dan valid_data = '1') maka data <= data_in

 
Saya rasa saya tidak mengerti dengan baik-Z Tinggi negara, itu masalahnya.

Dengan menambahkan sinyal tambahan yang Anda maksud yaitu Write imput?Bahkan aku punya Write input, tetapi pada simulasi jika saya set data untuk semua 'Z', data_in terpaksa tidak diketahui.Saya rasa yang seperti IC lainnya, data harus valid sebelum Write sinyal dan bahwa tidak ada yang harus dilakukan jika Write input data bus diaktifkan sementara masih High-Z?

 
Maaf untuk fisrt saya jawaban itu tidak cukup benar.

Z negara-negara impedansi tinggi output driver.
Output di Z-negara terisolasi dari input, situasi yang sama
ketika Anda menempatkan resistor secara seri 10Mom dari output untuk
input.Semua nilai dari output tidak mencapai masukan.
Next: Anda memiliki InOut data_in bus dari FPGA ke dunia luar
dan data = sinyal internal.
bis data_in adalah bekerja dalam modus InOut itu berarti input
dan output yang terhubung bersama-sama.

Mengapa Anda menggunakan bus InOut jika tujuan hanya untuk data INPUT
(menilai di data_in nama). Jika demikian, gunakan modus IN (yaitu data_in: IN std_logic_vector ..)

Jika tidak, dan Anda memerlukan dua arah InOut bis, baik pergi lebih jauh.
Seperti yang saya bilang, InOut berarti input pin dan output terhubung bersama sopir.Jika ada nilai apapun terhadap output driver, bahwa nilai yang sama Anda akan melihat
input.Driver kuat masukan, Anda melihat ke belakang pada nilai output input,
karena mereka terhubung bersama-sama.
Jika Anda ingin melihat nilai dari sopir eksternal terhubung ke pin IO pada
IO bus data_in, Anda HARUS menempatkan output bus ke Z negara.
Jika Anda tidak akan menempatkan Anda sampai Z keluaran negara dalam kasus terburuk driver eksternal
akan bertengkar dengan driver keluaran internal Anda.Menang terkuat.Dan Anda akan
melihat hasil dari pertempuran ini pada data_in masukan Anda.
Bila output Anda ditempatkan di negara Z output Anda terisolasi dari input,
dan Anda akan melihat sinyal dari sopir eksternal yang terhubung ke pin.
Itulah mengapa Anda harus menggunakan Z-negara.

Sekarang Anda data_in di Z-negara dan Anda sedang menunggu data yang benar dari eksternal
pengemudi.
Jika Anda menetapkan secara permanen data <= data_in, bahwa 'data' diatur ke negara tidak diketahui.
Yah ini bukan masalah.Bila Anda menempatkan data eksternal data_in, apakah Anda
ada sinyal di pin eksternal, yang menyertai dengan data yang valid.
Jika Anda memiliki, tidak masalah.Uji sinyal ini dan hanya saat itu sinyal
berlaku, menetapkan data <= data_in.
Jika Anda belum sinyal seperti itu, bagaimana FPGA menentukan data benar data_in bus?

 
Saya sudah menggunakan InOut, ketika Tulis yang memungkinkan saya mengupdate data sinyal internal dan ketika Baca ini memungkinkan saya menaruh data sinyal internal data_in (nama ini tidak terlalu baik dipilih tetapi berasal dari banyak usaha).Ada juga sebuah chip pilih.
Quote:Jika Anda ingin melihat nilai dari sopir eksternal terhubung ke pin IO pada

IO bus data_in, Anda HARUS menempatkan output bus ke Z negara.

 
toninlg wrote:

Jika saya menggunakan pin InOut bagaimana saya dapat menempatkan output bus ke negara Z?
Aku berpikir bahwa pengaturan data_in to Z negara, adalah solusi untuk melihat data eksternal pada pin IO?

 
Mengapa tidak membiarkan itu?
Saya tidak berpikir itu diperlukan untuk mengkonversi z untuk 1 atau 0.

 
Aku tidak berbicara tentang konversi Z untuk 0 atau 1 tapi mendeteksi jika data bus itu High-z.Karena dalam simulasi jika data bus High-Z data sinyal dipaksa untuk diketahui.Tapi aku mencampur hardware simulasi dan nyata.Dalam hardware jika bus Tinggi-Z input akan melihat 0, 1 atau berosilasi nilai antara 0 dan 1.
Aku tidak mengerti dengan baik bagaimana membuat sebuah bus di bidir VHDL; Aku sudah melihat beberapa posting di atas subjek ini, aku bukan hanya aku berpikir bingung.

 
Anda tidak dapat mendeteksi Tinggi Tinggi Z. Z adalah negara overridable.Jika satu proses secara terus-menerus mengemudikan garis sinyal untuk "Z negara", maka proses lain dapat menimpa negara dengan terus menerus menempatkan sebuah 0 atau 1 pada garis sinyal SAMA.Anda tidak dapat menangkap Z negara.(Anda tidak dapat jam ke sinyal lain.) Ini adalah negara yang tidak diketahui karena nilai Boolean tidak dapat diprediksi.

 

Welcome to EDABoard.com

Sponsor

Back
Top