Apakah batasan waktu jalur yang salah?

10

Di dunia FPGA, apa sebenarnya batasan jalur salah untuk kompiler HDL? Mengapa ini bermanfaat?

Randomblue
sumber
1
Ini adalah konsep digital, bukan hanya konsep FPGA.
W5VO

Jawaban:

14

Jalur salah adalah jalur pengaturan waktu yang tidak akan pernah benar-benar dilakukan dalam desain akhir. Misalkan Anda mendesain penghitung 4-bit dan ternyata ada jalur tunda yang sangat lambat saat bertambah dari 12 menjadi 13. Jika desain Anda selalu menyetel ulang penghitung kapan pun jumlah sama dengan 9 maka jalur lambat itu tidak akan pernah terlihat di desain yang sebenarnya. Anda memberi label jalur lambat sebagai jalur palsu sehingga kompilator tidak menghabiskan waktu, atau menambahkan logika tambahan, dalam upaya membuat jalur palsu berjalan lebih cepat.

Joe Hass
sumber
5
Huh, dan saya pikir jalan salah ada hubungannya dengan menggunakan Atmels bukan PICs atau sesuatu.
Olin Lathrop
Jenis jalur palsu yang lebih signifikan menurut saya adalah sinyal yang berubah di tepi satu jam dan disampel di tepi jam yang berbeda, tetapi sinyal tersebut tidak akan pernah benar-benar berubah di dekat waktu saat jam kedua berubah, atau jika itu tidak mengubah apa pun yang peduli tentang nilainya. Alat analisis waktu kemungkinan akan gagal kecuali ada yang menambahkan sinkronisasi ganda yang dikendalikan oleh jam kedua, tetapi menambahkan sinkronisasi seperti itu mungkin benar-benar merusak desain. Misalnya, jam pertama dapat berjalan pada 1MHz dan yang kedua pada 32KHz, tapi ...
supercat
... perangkat yang menghasilkan sinyal dapat mengubahnya tiga siklus 1MHz setelah melihat peningkatan pada clock 32KHz. Sebagai akibatnya, sinyal yang dikaitkan dengan jam 32kHz mungkin dijamin untuk memenuhi persyaratan sampel / penahan kait 32kHz tanpa sinkronisasi tambahan. Jika logika di sisi 1MHz menghasilkan data berdasarkan apa yang dilakukan sisi 32KHz, desain seperti itu dapat memungkinkan informasi yang dihasilkan pada satu siklus di sisi 32Khz untuk meresap kedua cara oleh siklus berikutnya. Menambahkan sinkronisasi ganda ke sisi 32Khz akan mematahkannya.
supercat
8

Jalur yang salah adalah jalur yang memang ada dalam desain tetapi tidak berperan dalam operasi, sehingga tidak perlu untuk memasukkannya dalam analisis pemilihan waktu.
Mungkin ada berbagai alasan mengapa ini terjadi, tetapi karena alat analisis waktu biasanya tidak tahu (walaupun ada beberapa alat yang dapat mendeteksi mereka) jalur mana yang dapat digunakan atau tidak, Anda harus mengatakannya. Ini mirip dengan jalur multi-siklus, di mana Anda dapat mengatakannya bahwa jalur tertentu diizinkan untuk menggunakan lebih dari satu siklus untuk menyelesaikan.

Contoh (dari jalur yang salah) adalah register yang mungkin ditulis sekali saat power up, tetapi kemudian tetap dalam status yang sama.

Oli Glaser
sumber
1

Sederhananya, jalur yang salah adalah jalur logis yang Anda ingin dikecualikan dari diperiksa untuk melihat apakah itu memenuhi waktu selama analisis waktu. Ada dua alasan untuk mengecualikan jalur, pertama karena jalur palsu akan membuat alat bekerja lebih keras untuk memenuhi waktu untuk sinyal yang pada gilirannya akan mempengaruhi jalur sinyal yang sah yang mungkin menyebabkan kesalahan waktu tambahan dan karena itu akan menyebabkan pemeriksaan waktu melaporkan kegagalan. mungkin mengalihkan perhatian desainer dari kesalahan waktu yang sah.

Jalur palsu disebabkan oleh jalur logika antara jam asinkron yang tidak terkait atau jam dengan frekuensi yang sama tetapi dengan hubungan fase yang tidak diketahui atau jalur yang tidak akan pernah diaktifkan selama operasi rangkaian normal. Memberitahu alat untuk mengabaikan jalan tidak membuat waktu bekerja hanya bahwa waktunya tidak dicentang. Terserah desainer untuk memastikan secara manual logika sinkronisasi yang benar digunakan untuk jalur sinyal yang diabaikan ini.

Ray Haynes
sumber