{"id":151,"date":"2015-09-18T12:11:32","date_gmt":"2015-09-18T12:11:32","guid":{"rendered":"http:\/\/coolt.ch\/notizen\/?p=151"},"modified":"2015-10-28T09:06:28","modified_gmt":"2015-10-28T09:06:28","slug":"vhdl-projekt-erstellen","status":"publish","type":"post","link":"https:\/\/coolt.ch\/notizen\/vhdl-projekt-erstellen\/","title":{"rendered":"VHDL-Projekt Datenstruktur und Programme"},"content":{"rendered":"<p><strong>Ordnerstruktur<br \/>\n<\/strong><em>Synthese<\/em> (oder quartus)<br \/>\n. \u00a0\u00a0 &#8211; Projektdatei:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 projekt.qpf<br \/>\n. \u00a0\u00a0 &#8211; Pinzuweisung: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 datei.tcl<br \/>\n.\u00a0 \u00a0 \u00a0 [<em>Ordner output_files<\/em>] wird durch Synthese generiert<br \/>\n.\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211; synthetisiertes File f\u00fcr FPGA:\u00a0\u00a0\u00a0 datei.sof<br \/>\n.\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211; kompiliertes File f\u00fcr Memory:\u00a0\u00a0 datei.pof<br \/>\n<em>VHDL<\/em> (oder source)<br \/>\n.\u00a0\u00a0\u00a0 &#8211; Es braucht ein Top-Level\u00a0\u00a0 top.xxx (rechte Maus) Rechte zuweisen<br \/>\n.\u00a0\u00a0\u00a0 &#8211; Schaltpl\u00e4ne: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 datei.bdf<br \/>\n.\u00a0\u00a0\u00a0 &#8211; importierete Bl\u00f6cke (IP): \u00a0 datei.qpf<br \/>\n.\u00a0\u00a0\u00a0 &#8211; eigene Bl\u00f6cke\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 datei.vhd<br \/>\n.\u00a0\u00a0 &#8211; testbench:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 tb_datei.vhd<br \/>\n<em>Software<\/em><br \/>\n.\u00a0\u00a0\u00a0 &#8211; files.c<br \/>\n.\u00a0\u00a0\u00a0 &#8211; files.h<br \/>\n<em><a href=\"http:\/\/coolt.ch\/notizen\/testbench\/\">Simulation<\/a><\/em> (oder questasim)<br \/>\n. \u00a0 \u00a0\u00a0 <em>Ordner<\/em> <em>questasim<\/em><em><br \/>\n.\u00a0\u00a0\u00a0\u00a0 \u00a0 \u00a0 \u00a0\u00a0\u00a0 &#8211; <\/em>Simulatondatei<em><em>:\u00a0\u00a0 test_midi.mpf<\/em><br \/>\n.\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0 \u00a0\u00a0\u00a0\u00a0 &#8211; <\/em>Signaldatei:<em>\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 wave.do<br \/>\n<\/em><em>.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 [Ordner work]\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/em>wird durch questasim generiert<br \/>\n.\u00a0\u00a0\u00a0\u00a0\u00a0 <em>Ordner<\/em> <em>script<\/em> (Verzeichnis zum Aufrufen der Simulation)<br \/>\n.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;<a href=\"http:\/\/coolt.ch\/notizen\/testbench-ausfuehren\/\"> compile.do<\/a><br \/>\n.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211; <a href=\"http:\/\/coolt.ch\/notizen\/vhdl-textbasierte-test\/\">test_input.txt<\/a><br \/>\n.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211; test_output_results.txt<\/p>\n<p><strong>&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;..<br \/>\n<\/strong><\/p>\n<p><strong>FPGA Synthese: Quartus<\/strong><br \/>\nDas Programm <em>Quartus<\/em> von altera (lizenz) ist sehr m\u00e4chtig. Ohne Lizenz, kann die Datei nicht auf das FPGA geladen werden.<br \/>\nIn der Synthese werden die Pins zugewisen, die Verbindungen gelegt, das FPGA-Innenleben designt.<\/p>\n<p>Die Synthese dauert sehr lange. Nach dem Synthetisieren wird der Stream auf das Board oder auf den Flash-Memory geladen.<\/p>\n<pre class=\"top-set:false bottom-set:false lang:sh decode:true\">home\/bin\/quartus_x.sh<\/pre>\n<p>&nbsp;<\/p>\n<p><strong>Simulation: Questasim<\/strong><br \/>\nDas externe Programm <em>questasim<\/em> ist ein ausf\u00fchrliches Simulationsprogramm.<br \/>\nQuartus selbst wird mit Modelsim mitgeliefert, das jedoch begr\u00e4nzt in der Anzahl zu simulierenden Bl\u00f6cke ist.<\/p>\n<p>Simuliert \u00fcber <a href=\"http:\/\/coolt.ch\/notizen\/testbench\/\">Testbenches<\/a>, die man \u00fcber die Konsole per <a href=\"http:\/\/coolt.ch\/notizen\/testbench-ausfuehren\/\">Script ausf\u00fchrt<\/a>.<\/p>\n<p><strong>\u00a0<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ordnerstruktur Synthese (oder quartus) . \u00a0\u00a0 &#8211; Projektdatei:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 projekt.qpf . \u00a0\u00a0 &#8211; Pinzuweisung: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 datei.tcl .\u00a0 \u00a0 \u00a0 [Ordner output_files] wird durch Synthese generiert .\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211; synthetisiertes File f\u00fcr FPGA:\u00a0\u00a0\u00a0 datei.sof .\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211; kompiliertes File f\u00fcr Memory:\u00a0\u00a0 datei.pof VHDL (oder source) .\u00a0\u00a0\u00a0 &#8211; Es braucht ein Top-Level\u00a0\u00a0 top.xxx (rechte Maus) Rechte zuweisen .\u00a0\u00a0\u00a0 &#8211; Schaltpl\u00e4ne: &hellip; <a href=\"https:\/\/coolt.ch\/notizen\/vhdl-projekt-erstellen\/\" class=\"more-link\"><span class=\"screen-reader-text\">VHDL-Projekt Datenstruktur und Programme<\/span> weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[38,21],"tags":[36,40],"_links":{"self":[{"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/posts\/151"}],"collection":[{"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/comments?post=151"}],"version-history":[{"count":15,"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/posts\/151\/revisions"}],"predecessor-version":[{"id":814,"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/posts\/151\/revisions\/814"}],"wp:attachment":[{"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/media?parent=151"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/categories?post=151"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/tags?post=151"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}