Unix Adlandırılmış Borular Üzerinden ModelSim Simülasyonunun Harici Kontrolü
Özet: Bu tezde, bir ModelSim simülasyonunu harici bir program aracılığıyla kontrol etme yöntemini sunuyoruz. ModelSim ve harici program arasındaki iletişim, her uygulamaya normal dosyalar olarak görünen Adlandırılmış Kanallar ("FIFO") kullanılarak gerçekleştirilir. İşlemler Arası İletişim (IPC) için FIFO'ların normal dosyalara karşı kullanımı arasındaki temel fark, başka bir uygulama FIFO'dan okumaya çalışana kadar bir uygulamanın FIFO'ya yazılmaya çalışılması ve tam tersi. Bu, IPC'nin güvenilirliğini artırır. Bu yöntemin başlıca avantajları şunlardır: 1) Yalnızca genel dosya işlemleri kullanıldığından, harici uygulama hemen hemen her programlama dilinde yazılabilir; 2) Doğrulama mühendisine standart doğrulama yazılım paketlerini minimum yeniden yazma ile yeniden kullanma yeteneği verir; 3) Birden Çok Test Altında Cihaz (DUT) birbiriyle iletişim kurarak, son sistemin daha doğru bir simülasyonu oluşturulabilir; ve 4) ModelSim'in simülasyon motoru çok iş parçacıklı olmasa bile, bir Tek Sistemli Görüntü (SSI) kümesi veya çok işlemcili bilgisayarda genel simülasyonun performansı kolayca artırılabilir. Davranışsal VHDL için dosya giriş / çıkış (G / Ç) uygulaması nedeniyle ModelSim bu FIFO'ları doğrudan okuyamaz veya yazamaz. Bu sınırlama için bir geçici çözüm ModelSim'in Yabancı Dil Arabirimi (FLI) kullanılarak gösterilmiştir. Bu makale aynı zamanda VHDL'de yeni nesil kayan nokta rutinlerinin doğrulanmasında kullanılan bu yöntemin çalışan bir örneğini göstermektedir. Özellikle, C ++ ile yazılmış açık kaynaklı IEEE Uyumluluk Denetleyicisi yazılım paketi,
Ve yabancı bir programlama arabirimi gerektiren FIFO'larla ilgili sorun, VHDL dosya G / Ç verileri mevcut olana kadar engelleme ile düzgün bir şekilde başa çıkamayacağıdır.
Maalesef tez web'de mevcut değil.
Model Sim ® Yabancı Dil Arabirimi Sürüm 5.6d , PDF 3.4 MB.
Linux x86 Platformunda c - VHDL Co-Simulation ve Simulator Control için ModelSim Yabancı Dil Arabirimini Kullanma Andre Pool - fli@andrepool.com - Sürüm 1.5 - Kasım 2012'de oluşturuldu, son güncelleme Eylül 2013 , PDF, 320KB (Ve asla FIFO'lardan bahsetmez) .
Linux x86 Platformunda c - VHDL Ko-Simülasyonu ve Simülatör Kontrolü için ModelSim Yabancı Dil Arayüzünün Kullanılması (Eşleşen github kod deposu).
Master · texane / vhdl · GitHub'da ghdl: vhdl / src / sim / ghdlex_mein'de VHPI Yabancı işlev çağrılarını kullanan biraz daha açık kaynak var
.
GHDL_discuss listesindeki Martin Strubel'den bir güncellemeye benzeyen:
14 Nisan 2014 tarihinde fifo.c için bir tarih gösteren http://www.section5.ch/downloads/ghdlex-0.051.tgz .
FLI, tanımı gereği sizi VHPI desteklerinin (IEEE Std 1076-2008, VHDL LRM'nin bir parçası olan) durumundan emin olmayan Modelsim'e kilitler.
Bir soket veya dosya kullanmak FIFO, yazılım ve donanım sürecinin hız tamponlaması sağlayarak farklı hızlarda çalışmasını sağlar. Yazılım sisteminiz, donanım simülasyonundan daha büyük büyüklükte siparişler ise (ve genellikle) her zaman gerekli değildir.
VHDL'ye UNIX (POSIX) işlevselliği sağlama çabası vardır, Daha önceki bir kağıda bir işaretçi içeren Public Domain VHDL paketlerine bakın SNUG San Jose 2002 1 VHDL Test Tezgahları için C / UNIX İşlevleri Bir slaytla birlikte VHDL Test Tezgahları için C / UNIX İşlevleri Unix borular ve rsh ile ilgili ek notlarla ayarlanır . Bu, adlandırılmış boruların nasıl açık tutulacağını gösterir. Tüm VHDL kodu da indirilebilir. Bunun amacınıza ulaşmanın en kolay yoluna yol açacağını düşünüyorum.
Modelsim'e özgü bir boruya bağlanmanıza izin veren bir şey var mı? Muhtemelen hayır, Windows altında daha çok. Bu yapılabilir mi? Evet, ama yol korkusuz olanlar için değil. Veri kullanılabilirliğini beklerken bir ucunu ya da diğerini ya da her ikisini de kilitleyebilirsiniz.
Bir yabancı programlama arayüzü teorik olarak 'borunun' bir veya diğer ucu için bir alt süreç oluşturmanıza izin verir, bu da iki uç arasında iletişim kurmak için paylaşılan bir bellek modeli kullanabileceğiniz anlamına gelir.