FPGA 7813R Vi mit unterschiedlicher Taktrate - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Module (/Forum-LabVIEW-Module) +---- Forum: LabVIEW FPGA (/Forum-LabVIEW-FPGA) +---- Thema: FPGA 7813R Vi mit unterschiedlicher Taktrate (/Thread-FPGA-7813R-Vi-mit-unterschiedlicher-Taktrate) |
FPGA 7813R Vi mit unterschiedlicher Taktrate - matze2 - 07.05.2009 10:05 Hallo, ich bin auf folgendes Problem gestossen, ich habe eine Taktrate von 16 000 Hz um ein ein weiteres LabVIEW Modul zu triggern, leider hat sich nun meine Anforderung geändert und es muss mit 16384 getaktet werden. Nun steh ich vor dem Berg, dass ich nicht weis wie ich zwei verschiedene Taktraten auf einem FPGA-VI laufen lassen soll, denn es muss noch ein 2. Takt generiert werden (2MHz von dem 40 MHz Grundtakt des FPGA's abgeleitet). Problem: 16384 ist nicht restlos in den 40 MHz Takt (Standardtakt)= 25ns teilbar Mit Zähler bis 2441: 2441*25ns= 61,025us (16386,7...Hz) oder mit Zähler bis 2442: oder 2442*25ns= 61,050(16380,0..Hz) Nun hab ich eine Taktrate gefunden die Toleranzmäßig passt => 85 MHz Denn dann habe ich einen Zähler bis 5188: 5188*11,7647 ns = 61,035 us( 16383,971 Hz) Wie ist es möglich eine 2. Clock auf dem System laufen zu lassen -(Single Cycle Timed Loop?) In der dann das ganze läuft? So etwas ähnliches hab ich schonmal probiert, nun darf man aber nicht einen Pin(port) in 2 verschiedenen Clock Ebenen betreiben Kann mir jemand helfen ?? FPGA 7813R Vi mit unterschiedlicher Taktrate - chrissyPu - 08.05.2009 08:23 Hi, ehrlich gesagt, verstehe ich Dein Problem nicht ganz... Mal frei interpretiert: Du willst auf einem digitalen Ausgang deiner Karte ein Rechtecksignal mit 16xxx Hertz ausgeben, um damit was anderes zu triggern, richtig? Wenn das so stimmt, würde ich sagen, dass Du da eher schlechte Karten hast - die derived clock, die man für die FPGAs erstellen kann, sind immer Vielfache mit ganzzahligen Teilern von der base clock des FPGA und damit kommst Du eher nicht auf 85 MHz. Abgesehen davon, dass ich die Erfahrung gemacht habe, dass die meisten Elemente auf dem System so lange brauchen, dass man gar keine derived clock einsetzen kann (wobei das auch am analogen Teil bei mir liegen könnte). Grüße, ch FPGA 7813R Vi mit unterschiedlicher Taktrate - matze2 - 08.05.2009 10:52 Hallo chrissyPu, Ja das hast du genau richtig verstanden, vielleicht sieht man es aber besser an meinem Anhang (zip - Datei) dieses vi ist nur auf das Problem reduziert. Es muss aber nicht unbedingt ein Port Pin sein, es kann auch eine Synchronisationsvariable sein, die zum triggern hergenommen wird. Das Triggern erfolgt dann intern auf dem FPGA ! Grüße ________________________________________________ Beim kompilieren kommt dann folgendes Problem: ERROR:HDLParsers:850 - "C:/NIFPGA86/srvrTmp/LOCALH~1/TEST16~2/rvi_fpga_vi_FPGACompileCopy1.vhd" Line 580. Formal port Periode does not exist in Entity 'XDataNode'. --> Total memory usage is 117856 kilobytes Number of errors : 1 ( 0 filtered) Number of warnings : 1 ( 0 filtered) Number of infos : 0 ( 0 filtered) ERROR:Xflow - Program xst returned error code 6. Aborting flow execution... ___________________________________________________ FPGA 7813R Vi mit unterschiedlicher Taktrate - thomas.sandrisser - 08.05.2009 14:18 Was du machen willst, wird leider nicht funktionieren. Pkt1. Die SCTL heisst sctl, weil sie in einem cycle ausgefuehrt wird (unabhaengig was du an das DT an die linke seite der nodestruktur anschliesst!. Wenn du in zukunft eine custom derived clock basteln willst mit einer SCTL, dann musst du mit einer case-struktur innerhalb der sctl arbeiten und die X takte zaehlen (pro durchlauf ein takt weil single cycle) und dann beim erreichen der von dir festgelegten custom frquency the entsprechenden case mit der logic abarbeiten und den zaehler zurueck setzen (siehe bild.) z.b. den FPGA extern takten Pkt2. Der xflow fehler den du bekommst, tritt auf weil es nicht moeglich ist einen IO port (oder line) mit 85MHz zu compilieren. D.h. entweder du findest mit einem weitaus geringeren teiler und einer hoeheren ungenauigkeit ein auskommen, oder du musst dir etwas anderes einfallen lassen |