Hallo, guten Tag.
Verbindung mit Component von Grafikentwurf zum VHDL mit Quartus 2.
Ich habe eine Grafik aus 1x2And entworfen mit Eingang : E1 E2 und
Ausgang A1.
Es wurde compiliert.
Wer kann mir bitte einmal zeigen, wie ich diese Componente oben jetzt in
meinem Process einbinde im VHDL-Text.
Danke.
GRuss
Vielleicht kannst du die Komponente in eine Lib compilieren. Diese Lib
dann in deinem HDL einbinden und dann die Component auf dem üblichen Weg
einbinden. Musst halt mal schauen, wie das geht.
Normale VHDL habe ich schon als Componente ein gebaut, VGA,RS232 usw.
Es ging mir jetzt mal um komplexe Schaltungen die ich dann in VHDL
einbauen wollte.
Gruss
Du musst das gesamte Design grafisch bauen. Teile davon können VHDL und
Blackbox sein, aber das Grafische wird hinterher runtercompiliert und in
ein VHDL übersetzt, wobei alles eingebunden wird.
Wenn du das Grafische nur als Submodul nutzen willst, musst du es "bauen
lassen" und das entstandene VHDL ("vhj" war es glaube ich) verwenden.
Das ist dann genau so, wie selbstgetippt.
peter schrieb:> Es ging mir jetzt mal um komplexe Schaltungen die ich dann in VHDL> einbauen wollte.
Diesen Weg gibt es nicht. Du könntest bestenfalls den Schaltplan in VHDL
übersetzen und den resultierenden VHDL-Code als Komponente einbinden...
peter schrieb:> Jup, danke für die Info.>> Was heisst bitte : "bauen lassen" ?>> Danke.> Gruss
Die Syntheseumgebung natürlich, sie "baut" Dir Deine Schaltung nach
Deiner Vorgabe. Deine Schaltungsverbindungen werden in Signal übersetzt,
Komponenten erzeugt und alles in VHDL abgelegt. Das kannst du anzapfen.
Also mit dem Vivado IP Integrator geht sowas ähnliches, da kann man auf
Systemebene RTL-Komponenten (die man vorher als IP-Packages exportiert
hat) grafisch verbinden. Fand ich ganz nett. Im Endeffekt generiert
Vivado dann nur ein bisschen VHDL-Code, der die einzelnen Komponenten
instanziiert und verbindet.
greg schrieb:> Also mit dem Vivado IP Integrator geht sowas ähnliches
peter will es hier aber gerade andersrum: ein grafisch erzeugtes Symbol
als VHDL-Komponente verwenden.
peter schrieb:> Was heisst bitte : "bauen lassen" ?
Diese Frage hatte ich im Post direkt davor beantwortet. Du musst die
Toolchain (=die Werkzeuge mit denen du arbeitest) kennen und
kennenlernen, sonst kommt immer nur halbgares Zeug raus. Frei nach dem
Motto: "Wer nur einen Hammer kennt, für den sieht die ganze Welt wie ein
Nagel aus."
Wie kann man bitte mehrere kleine Schaltungsmodule entwerfen ,
abspeichern und dann wieder einladen zu einem grossen Ganzen im Design
vom Quartus2 und dann die Pin-Verbindungen herstellen?
Danke.
Gruss
Suchst Du das?:
Create Symbol Files for Current File Command (File Menu)
You access this command by pointing to Create/Update on the File menu,
and then clicking Create Symbol Files for Current File.
Creates a new Block Symbol File (.bsf) that represents the entities in
the current Text Design File (.tdf), VHDL Design File (.vhd), Verilog
Design File (.v), or EDIF Input File (.edf).
(http://quartushelp.altera.com/13.1/mergedProjects/design/ted/ted_com_create_symbol.htm)
Vorher evtl. einmal "Analyze current file" mit offener .vhd.
Hallo Peter,
das sollte problemlos gehen, ich habe es auch schon gemacht. Zur Info
für die Anderen: Nicht, weil ich kein VHDL kann, sondern weil ich in
Schaltungen wesentlich komplexere Zusammenhänge überschauen kann als in
Textfiles. Und diese war komplex. Es war bisher die einzige Schaltung
unter vielen VHDL-Files, die ich gemacht habe.
Das GIF zeigt einen Ausschnitt. Am rechten Rand sind Generics definiert.
Die Konvertierung in VHDL sollte mit File -> Create/Update -> Create HDL
Design File for Current File ausgeführt werden können. "Sollte": Aus
irgend einem Grund ist das bei mir zurzeit ausgegraut. Damals hat es ein
VHDL-File erzeugt, was so aussieht (nur der Beginn):
1
-- Copyright (C) 1991-2010 Altera Corporation
2
-- bla bla
3
4
-- PROGRAM "Quartus II"
5
-- VERSION "Version 9.1 Build 350 03/24/2010 Service Pack 2 SJ Web Edition"
Hallo, guten Tag.
Ich habe ein Design entworfen (siehe Bild).
Irgendwie habe ich es geschafft es zu compilieren, so wie du es gezeigt
hast.
Ich habe ein fertiges VHD-File welches auch auf meinem DE0 läuft.
Ich habe es als Component eingebaut.
Nun ist es wie bei dir:
Aus irgend einem Grund ist das bei mir zurzeit ausgegraut.
Es ging beim ersten mal.
Ich weiß jetzt die Reihenfolge nicht mher der Bedienung....hm...
Danke.
Gruss
Hallo, guten Tag.
------------------------
Wie man sieht, habe ich auch VHDL-Files als Block-Grafiken (BSF-Files)
in die Schaltung eingesetzt. Geht auch.
-----------------------
Was meinst du damit bitte ?
Kannst du das bitte für mich als Laie einmal erklären?
danke.
Gruss
Hallo, guten Tag.
Ich habe jetzt im Grafikmodus ein BSF-File erzeugt, welches eine
Baugruppe ist. Ich finde jetzt keinen Weg wie ich dies Baugruppe im
meinem Grafikentwurf mit einbinden kann?
Danke.
Gruss
Hallo ,
Peter schrieb:> ------------------------> Wie man sieht, habe ich auch VHDL-Files als Block-Grafiken (BSF-Files)> in die Schaltung eingesetzt. Geht auch.> ----------------------->> Was meinst du damit bitte ?> Kannst du das bitte für mich als Laie einmal erklären?
Ich hatte also eine komplizierte Schaltung als Schaltplan. Teil des
Schaltplans sollten Module, die teilweise mehrfach vorkamen, sein, die
schon in VHDL geschrieben waren. Um diese VHDL-Module in Schaltpläne
einzusetzen, werden sie von Quartus zu BSF-Files (Block symbol Files)
konvertiert, im Prinzip ist das die Entity-Declaration als Grafik. Die
kann man dann ganz normal mit Leitungen in der Schaltung "verdrahten".
Grüße, Uwe
peter schrieb:> Ich habe jetzt im Grafikmodus ein BSF-File erzeugt, welches eine> Baugruppe ist. Ich finde jetzt keinen Weg wie ich dies Baugruppe im> meinem Grafikentwurf mit einbinden kann?
Hi Peter,
"im Grafikmodus ein BSF-File" scheint nicht das zu sein, wovon ich rede.
Das geht auch, ich weiß aber nicht, wozu. Meine BSF-Files wurden aus
VHDL-Files erzeugt (müsste auch über Create/Update gehen). Die dabei
erzeugten BSF-Files werden eingesetzt mit:
Edit - Insert Symbol - Name (...) -> BSF-File aussuchen.
Grüße, Uwe
-------------------------------
Edit - Insert Symbol - Name (...) -> BSF-File aussuchen.
-------------------------------
Ich habe ein Grafikentwurf gemacht.
Nun möchte ich bitte ein BSF-File einfügen.
ich befinde mich im Grafikmodus bei meinem Design.
Ich habe zwar Edit oben in der Menuleiste , aber kann jetzt mit Insert
Symbol - Name (...) nichts anfangen, ich sehe es nicht in im Klappmenu
unter Edit.
Danke.
Gruss
Hallo, danke, jetzt geht es......
Deine Hilfe ist stark gewesen.
1. Grafikdesign(Componente entworfen, g_file1)
2. BSF-File erzeugt vom Grafikdesign und VHD-File erzeugt
3. BSF-File und VHD-File in den Ordner von meinem Grafikdesign(g_file)
wo ich
diese Componente brauche
4. Dieses dann compiliert und VHD-File(g_file) erstellt.
5. Im RTL-Viewer erkennbar einbebaut.
Gruss
Hier sind die beiden VHD die von den beiden Grafiken g_file und g_file1
erstellt worden sind. Man kann auch Componenten aus Grafikem erzeugen
und zusammenbauen.
Die Spielwiese hat sich dadurch vergrößert und für mich sehr
Interessant.
Danke.
Gruss
1
-- Copyright (C) 1991-2013 Altera Corporation
2
-- Your use of Altera Corporation's design tools, logic functions
3
-- and other software and tools, and its AMPP partner logic
4
-- functions, and any output files from any of the foregoing
5
-- (including device programming or simulation files), and any
6
-- associated documentation or information are expressly subject
7
-- to the terms and conditions of the Altera Program License
8
-- Subscription Agreement, Altera MegaCore Function License
9
-- Agreement, or other applicable license agreement, including,
10
-- without limitation, that your use is for the sole purpose of
11
-- programming logic devices manufactured by Altera and sold by
12
-- Altera or its authorized distributors. Please refer to the
13
-- applicable agreement for further details.
14
15
-- PROGRAM "Quartus II 64-Bit"
16
-- VERSION "Version 13.0.0 Build 156 04/24/2013 SJ Web Edition"
17
-- CREATED "Thu Feb 19 17:14:17 2015"
18
19
LIBRARYieee;
20
USEieee.std_logic_1164.all;
21
22
LIBRARYwork;
23
24
ENTITYg_file1IS
25
PORT
26
(
27
pin_name2:INSTD_LOGIC;
28
pin_name1:INSTD_LOGIC;
29
pin_name3:OUTSTD_LOGIC
30
);
31
ENDg_file1;
32
33
ARCHITECTUREbdf_typeOFg_file1IS
34
35
BEGIN
36
37
pin_name3<=pin_name1ANDpin_name2;
38
39
ENDbdf_type;
1
-- Copyright (C) 1991-2013 Altera Corporation
2
-- Your use of Altera Corporation's design tools, logic functions
3
-- and other software and tools, and its AMPP partner logic
4
-- functions, and any output files from any of the foregoing
5
-- (including device programming or simulation files), and any
6
-- associated documentation or information are expressly subject
7
-- to the terms and conditions of the Altera Program License
8
-- Subscription Agreement, Altera MegaCore Function License
9
-- Agreement, or other applicable license agreement, including,
10
-- without limitation, that your use is for the sole purpose of
11
-- programming logic devices manufactured by Altera and sold by
12
-- Altera or its authorized distributors. Please refer to the
13
-- applicable agreement for further details.
14
15
-- PROGRAM "Quartus II 64-Bit"
16
-- VERSION "Version 13.0.0 Build 156 04/24/2013 SJ Web Edition"
Wissenschaftliche und technische Neugier in allen Ehren, aber eine Woche
Zeit mit der graphischen Eingabe zu verbringen und dann mit einem
unverständlichen Monster-VHDL dazustehen, für etwas, das man lesbarer in
5 Minuten geschrieben hätte....
Naja, meine Zeit ist's ja nicht.
Hi,
zunächst zum Klaus:
klaus schrieb:> Wissenschaftliche und technische Neugier in allen Ehren, aber eine Woche> Zeit mit der graphischen Eingabe zu verbringen und dann mit einem> unverständlichen Monster-VHDL dazustehen, für etwas, das man lesbarer in> 5 Minuten geschrieben hätte....
Ich vermute, dass der Klaus noch nie Elektronik gemacht hat und noch nie
trainiert hat, Schaltpläne zu lesen. Dann wüsste er, wie viel
übersichtlicher, wie viel lesbarer ein Schaltplan ist. Weiß er aber
offensichtlich nicht. Die entstehende Monster-VHDL ist auch überhaupt
nicht zum Lesen gedacht!!! Ist ihm das nicht klar? Und seine Woche zu 5
Minuten - na ja - nicht sehr qualifiziert...
peter schrieb:> Hallo, Uwe, was mir noch fehlt, ich komme das nicht hinter, wie man> aus einer selbst geschriebenen VHD ein BSF-File erzeugt?
Jetzt hast du mich wieder auf dem falschen Fuß erwischt. Mal wieder, wie
auch weiter oben, ist bei mir die entsprechende Funktion ausgegraut.
Aber du hattest es weiter oben ja auch schon gelöst, und mir ist es vor
ein paar Jahren auch gelungen, und zwar genau so, wie es in der Altera
Help steht:
http://quartushelp.altera.com/current/mergedProjects/design/ged/ged_com_create_symbol.htm:
/Show
Quartus II Help v14.1 > Create Symbol Files for Current File Command
(File Menu) (Block Editor)
Create Symbol Files for Current File Command (File Menu) (Block Editor)
You access this command by clicking in a Block Design File (.bdf),
pointing to Create/Update on the File menu, and then clicking Create
Symbol Files for Current File.
Allows you to create a new Block Symbol File (.bsf) for the current
Block Design File./
Dem habe ich nichts hinzu zu fügen.
Grüße, Uwe
Uwe schrieb:> Mal wieder, wie> auch weiter oben, ist bei mir die entsprechende Funktion ausgegraut.
1. Die BSF-Konvertierung hat jetzt, wie erwartet, ganz einfach geklappt
(anscheinend hatte ihn gestört, dass ich kein Projekt angelegt hatte)
2. Seit ich vorhin einen neuen Monitor in Betrieb genommen habe, kann
Quartus bei mir keine Grafiken mehr anzeigen! Gestern, mit den alten
Monitoren, ging das noch, siehe Post von weiter oben... (**Fluch**)
Uwe schrieb:> Seit ich vorhin einen neuen Monitor in Betrieb genommen habe, kann> Quartus bei mir keine Grafiken mehr anzeigen! Gestern, mit den alten> Monitoren, ging das noch, siehe Post von weiter oben... (**Fluch**)
Ja, solche ähnlichen "Vorteile" hat man auch bei der Schaltplaneingabe
bei Xilinx. Je nach Version, Monitorauflösung, Mondphase usw ist der
Schaltplan sooo viel übersichtlicher als stukturiertes VHDL. Vor allem
wenn man was ändern will, und eine Versionskontrolle verwendet, oder gar
das Design portieren will, zeigen sich die Vorzüge des Schaltplanes
deutlich...
--------------------------------------------
Jetzt hast du mich wieder auf dem falschen Fuß erwischt. Mal wieder, wie
auch weiter oben, ist bei mir die entsprechende Funktion ausgegraut.
Aber du hattest es weiter oben ja auch schon gelöst, und mir ist es vor
ein paar Jahren auch gelungen, und zwar genau so, wie es in der Altera
-------------------------------------------
Jup danke. Also irgendwie funktioniert es dann doch wie du schreibst.
Ich war beim ersten Teil zu schnell am klicken das ich nicht mehr wusste
welche Reihenfolge ich da eingehalten hatte umd eine VHD zu erzeugen.
Auf jedemfall klappt der erste Teil.
Ich finde Grafik zu Text wunderbar.
Danke.
Gruss
Uwe schrieb:> Ich vermute, dass der Klaus noch nie Elektronik gemacht hat und noch nie> trainiert hat, Schaltpläne zu lesen. Dann wüsste er, wie viel> übersichtlicher, wie viel lesbarer ein Schaltplan ist. Weiß er aber> offensichtlich nicht. Die entstehende Monster-VHDL ist auch überhaupt> nicht zum Lesen gedacht!!! Ist ihm das nicht klar? Und seine Woche zu 5> Minuten - na ja - nicht sehr qualifiziert...
Naja, da möchte ich mich doch ein bisschen verteidigen.
Ich weiss ja nicht was Du machst, aber ich glaube, dass von meiner Seite
aus mehr als 20 Jahre Elektronik und VHDL als Qualifikation genügen
dürften.
Damit verdiene ich mir nämlich meine Brötchen.
Aber egal. Jeder soll die Tools verwenden, die er liebt.
Die Nachteile von Schaltplänen wurden schon öfter diskutiert
Moin Peter,
peter schrieb:> Ich kann bitte leider daraus nicht lesen, wie ich vorgehen muss um aus> einer VHD eine Grafik : BDF oder BSF zu erstellen.
Hmmm... Warum nicht? Ich hoffe, dass ich dich nicht falsch verstehe.
Also: Du hast eine VHDL-Datei mit einer Entity (ich nehme mal nur eine
Entity an, was sonst passiert, weiß ich nicht).
Du machst diese Datei im Editor sichtbar (Tab aktiviert).
Du gehst in File -> Create/Update -> Create Symbol Files for Current
File
Dann kommt ein kurzer Compilerlauf und ein BSF-File entsteht.
Heute will mein Computer bzw. Quartus auch wieder Grafiken darstellen
(?!?!), also als Beispiel diese Entity:
1
libraryIEEE;
2
useIEEE.STD_LOGIC_1164.ALL;
3
useIEEE.STD_LOGIC_ARITH.ALL;
4
useIEEE.STD_LOGIC_UNSIGNED.ALL;
5
6
entityIIS2SPDIFis
7
port
8
(Clock:instd_logic;
9
SDat:instd_logic;
10
SClk:instd_logic;
11
LRClk:instd_logic;
12
Pro:instd_logic;
13
SPDIFOut:outstd_logic
14
);
15
endIIS2SPDIF;
16
17
architectureDelay1SampleofIIS2SPDIFis
Das Ergebnis, also das BSF-File, kannst du mit File -> Open oder einfach
durch Drag-and-Drop öffenen, und siehst das Ergebnis, siehe GIF-File im
Anhang.
Oder du platzierst es in der Schaltung wie ich schon schrieb:
Uwe schrieb:> Edit -> Insert Symbol -> Name (...) -> BSF-File aussuchen -> Ok.
Auch das als Beispiel im zweiten GIF im Anhang.
(Merkst du was? Auch ich habe so viel Zeit wie du, aus gleichen
Gründen...)
Uwe
klaus schrieb:> Naja, da möchte ich mich doch ein bisschen verteidigen.> Ich weiss ja nicht was Du machst, aber ich glaube, dass von meiner Seite> aus mehr als 20 Jahre Elektronik und VHDL als Qualifikation genügen> dürften.> Damit verdiene ich mir nämlich meine Brötchen.> Aber egal. Jeder soll die Tools verwenden, die er liebt.> Die Nachteile von Schaltplänen wurden schon öfter diskutiert
Hallo Klaus,
Verteidigung akzeptiert. Elektronik mache ich mehr als doppelt so lange,
aber damit will ich nicht behaupten, besser qualifiziert zu sein.
VHDL habe ich schon viel geschrieben, aber ich halte mich noch lange
nicht für einen Profi. Nur ein einziges Mal habe ich einen Schaltplan
gemacht, weil ich die Komplexität in der Textversion einfach nicht mehr
überschaut habe.
Ich werde auch weiterhin (fast?) nur VHDL schreiben. Während des
Schreibens, insbesondere beim Modifizieren und Korrigieren, geht es
zweifellos schneller. Aber es graut mir davor, mich in eine ältere
VHDL-Datei einzulesen, was denn da gemeint war. Da kann ich eine
Schaltung erheblich schneller lesen und verstehen.
Es hat weniger was mit dem Tool, was ich liebe, zu tun. Ein anständig
gemachter Schaltplan ist aufwändiger, insbesondere bei der Entwicklung,
aber nachhaltiger, weil besser dokumentiert. Weil ich aber faul bin
(nein, natürlich weil ich Zeit sparen will!), schreibe ich letztendlich
doch VHDL...
Grüße, Uwe
PS: Aspekte der Portabilität sollten natürlich auch nicht ignoriert
werden. Und natürlich gibt es auch Konstrukte, die als Schaltung
blödsinnig wären, als Text aber viel sinnvoller.
Hallo Uwe , danke.
Jetzt funktioniert es auch mit dem VHD > BSF .
Das wichtigste ist immer das "Saven", danach sind die grau hinterlegten
Texte offen.
Danke.
Gruss
Wie macht man eigentlich bitte einen variablen Takt in BDF?
Eingangstakt ist 50Mhz.
Ich brauche verschiedene Taktraten für verschiedene Aufgaben in der
gleichen BDF.
Danke.
Gruss
> Wie macht man eigentlich bitte einen variablen Takt in BDF?> Eingangstakt ist 50Mhz.
Wie machst du es denn in VHDL? Ich frage deshalb, weil mir die
Fragestellung nicht klar ist. Meinst du mehrere Takt_signale_? Für einen
Schaltplan oder ein VHD-File ist es unerheblich, ob sich der Takt ändert
oder nicht.
Grüße, Uwe
Hallo Peter,
das ist ein wunderbares Beispiel, wie unsinnig (im Sinne von Klaus) es
sein kann, einen Schaltplan statt eines VHD-Codes zu machen. Aber es
geht hier ja um's Prinzipielle.
1
if(cnt<100000)then
2
cnt<=cnt+1;
3
test<='0';
4
else
5
cnt<=0;
6
test<='1';
7
endif;
Viele Varianten gibt es, hauptsächlich:
1. Ganz zu Fuß aus lauter einzelnen Flip-Flops und Gattern
2. Halb zu Fuß aus komplexeren Library-Elementen (da gäbe es z. B. die
TTL 74er-Reihe)
3. Möglichst kompakt, indem mit dem Mega-Wizard Plugin-Manager geeignete
Library-Elemente an die Aufgabenstellung angepasst werden.
Letzteres könnten z. B. ein LPM_Counter und ein LPM_Compare sein, die so
zurecht gebogen werden, dass die Busbreite stimmt (17 Bit für 100000)
und beim Comparator das 17-Bit Eingangssignal mit einer Konstanten
verglichen wird, siehe der 3. Screenshot (die ersten beiden sind aus
Versehen angehängt, das konnte ich nicht rückgängig machen).
Das Signal "test" ist dann der Ausgang AeB (A equal B).
Das ist ziemlich viel Arbeit, mit VHD schneller zu erschlagen und nicht
viel übersichtlicher.
4. Alternativ: Die Entity in VHDL schreiben und in ein BSF konvertieren.
Dann ist der ganze Teiler nur noch ein Symbol. Aber das war dir
wahrscheinlich sowieso klar.
Grüße, Uwe
Hallo..., ja das ist für mich ein Problem.
Die Nr 3 schließe ich aus, mit dem Mega-Wizard, der macht immer
überdimensionale Strukturen, die man nicht nach verfolgen kann.
Ja die nur 4. hatte ich schon probiert, geht auch wunderbar.
Ich dachte es gibt noch eine einfachere Lösung.
Danke für deine Hilfe.
Gruss
Moin Peter,
peter schrieb:> wie wird denn ein Takt immer weiter halbiert als Grafik?>> Eingang : 50Mhz> Auagang : 25Mhz, 12,5Mhz usw?
Jetzt wird's aber zu einfach: Mit einem Binärzähler!
peter schrieb:> Die Nr 3 schließe ich aus, mit dem Mega-Wizard, der macht immer> überdimensionale Strukturen, die man nicht nach verfolgen kann.
Überleg' dir das noch mal. "überdimensionale Strukturen" kann ich nicht
nachvollziehen, ich halte die Ergebnisse für optimal, sinnvoll und sehr
effizient. Vieles kannst du gar praktisch nicht ohne Mega-Wizard selber
realisieren. Vielleicht hast du etwas falsch gemacht oder falsch
verstanden, so dass du zu deinem Urteil gekommen bist.
Ich unterscheide auch: Der Mega-Wizard kann 1. zur Generierunng reiner
Logik eingesetzt werden, aber 2. auch zur Konfiguration der
FPGA-spezifischen Hardware, z. B., der PLL, komplexer MACs aus den
DSP-Blöcker, komplexer Speicher usw..
Grüße, Uwe
Ja ich habe mal ein 2 Blockram angelegt mit dem Mega-Wizard, das Ding
war 10x so gross im VHDL , so wie ich es dann anschließsend entworfen
habe.
Und die Sachen die interessant für mich waren, sind gesperrt in der
Web-Edition.
Danke.
Gruss
peter schrieb:> Ja ich habe mal ein 2 Blockram angelegt mit dem Mega-Wizard, das> Ding> war 10x so gross im VHDL , so wie ich es dann anschließsend entworfen> habe.
Das verstehe ich nicht. Da muss was falsch gelaufen sein. Meinst du, es
wären 10x so viel Ressourcen verbraucht worden, oder ist der Code nur
größer? Vielleicht sollten wir das mal prüfen.
> Und die Sachen die interessant für mich waren, sind gesperrt in der> Web-Edition.
Hmmm - das scheint tatsächlich immer mehr zu werden. Aber so komplexe
Dinge, wie sie bisher gesperrt waren, habe ich noch nie gebraucht.
Uwe
-------------------------
Aber so komplexe Dinge, wie sie bisher gesperrt waren, habe ich noch
nie gebraucht.
-------------------------
Schau mal im Grafikmodus wenn du eine Baugruppe raus suchst, wie viel da
grau hinterlegt sind. Diese kann man auch teilweise mit dem Wizard
erstellen, aber nur in der Profiversion.
GRuss
peter schrieb:> Schau mal im Grafikmodus wenn du eine Baugruppe raus suchst, wie viel da> grau hinterlegt sind. Diese kann man auch teilweise mit dem Wizard> erstellen, aber nur in der Profiversion.
Ich habe den Mega-Wizard Plugin-Manager mal aus Tools gestartet und mit
angesehen, wie viele Megafunctions (ist das das, was du "Baugruppe"
nennst?) ausgegraut sind. Es waren zu meinem Schreck fast alle. Aber
dann habe ich gesehen, dass das nur die betraf, die bei der gewählten
Familie nicht zur Verfügung standen - was ja logisch ist.
Wenn ich eine richtig leistungsfähige Familie, z.B. Stratix III gewählt
habe, standen sie sie fast alle zur Verfügung! Nix mit ausgrauen, nix
mit Profi-Version. Nur im IP Mega store sind wohl einige von
Drittanbietern, die man lizenzieren muss.
Ich arbeite aus gegebenem Anlass noch mit Quartus 9.1, vielleicht gibt
es da ja einen Unterschied. Das würde mich allerdings sehr
interessieren.
Noch was: "Im Grafik-Modus": Der Mega-Wizard Plugin-Manager läuft nicht
in irgendeinem Text- oder Grafik-Modus. Er kann sowohl Grafik-Symbole
(*.BSF) als auch VHDL-Entities (*.VHD) für die Megafunctions erstellen.
Du musst am Schluss nur auswählen, welche die Dateien erzeugt werden
sollen und welche oder nicht.
Uwe
Ja, ich habe die Serie II,III und IV , da tut sich nicht viel mit dem
hervorheben.
Leg mal bitte ein synchrones BlockRAM an mit dem Wizard mit 2048 Byte.
Vielleicht kapiere es nicht so.
Danke.
Gruss
Ich habe die letzte 13.... Version wo noch der II und III drin ist. Ab
den 14.... sind die nicht mehr drin.
Meine Ansprüche sind nicht so groß als Anfänger.
Ich freue mich das es jetzt klappt mit dem BDF und BSF.
Da werden meine Wünsche erfüllt:
Schaltplan umsetzen für den FPGA und dann dieses VHDL auslesen.
Danke.
Gruss
peter schrieb:> Leg mal bitte ein synchrones BlockRAM an mit dem Wizard mit 2048 Byte.> Vielleicht kapiere es nicht so.
Vielleicht gibt es mittlerweile mehr, als bei mir zur Verfügung steht.
Ich weiß nicht, was ein "synchrones BlockRAM" ist. Sie meine
Screenshots: Ich habe ein einfaches, Single-Port RAM ausgewählt und 2048
x 8 Bit angegeben. Daten und Adressen sind registered - das könnte in
deinem Sinn ein synchrones BlockRAM sein.
Benötigt werden nur exakt 2 M9k-Blöcke, keine Zusatzlogik. Soll ich dir
die Files erzeugen?
Noch einmal etwas anderes.
Ich habe mein RS232-RX umgesetzt in einem BSF und in die Grafik
eingefügt.
Da habe ich ja einen Datenbus mit Bit 0-7. Die verbinden ich in der
Grafik mit einer sogenannten Busline.
Meine Frage: Wie kann ich jetzt am ende der Buslinie meine 8 Led
anklemmen?
Danke.
Gruss
1. Tools -> Mega-Wizard Plugin-Manager
2. Device Family wählen (hier: Cy III)
3. Name für die Output-Files (hier: RAM)
4. Gewünsche Megafunction wählen (hier: RAM 1-PORT)
5. Next
----
6. Die Defaults sind ok, bis auf: How many 8-bit words" auf 2048 stellen
7. Next
----
8. Die Defaults sind ok (alles registered), also
9. Next
----
10. Read-During-Write: Ist mir egal. Also
11. Next
----
12. Als RAM wird es wohl leer bleiben, aber das Memory lässt sich auch
mit einem MIF-File initialisieren (neues Thema). Also
13. Next
----
14. Simulation Libraries: Habe ich nichts mit am Hut. Also
15. Next
----
16. Ausgabefiles: Das VHD wird immer erzeugt
17. Wenn du ein BSF willst, BSF aktivieren
18. Wenn du nicht simulieren willst, kannst du Waveforms deaktivieren
19. Finish
----
Jetzt gibt es ein VHD- und ein BSF-File in der angegebenen Directory.
20. Im Grafik-Modus Insert -> Symbols
21. Unter Projects (oder durch manuelle Suche) das RAM suchen.
22. Auswählen und platzieren.
Fertig. War das 'ne tolle Anleitung? - Ich habe mal wieder zu viel
Zeit...
peter schrieb:> Wie kann ich jetzt am ende der Buslinie meine 8 Led> anklemmen?
Wusste ich auch nicht. Mein einziges BDF-Design kannte nur einzelne
Pins. Aber Google "altera bdf bus pins" hilft:
www.altera.com/literature/tt/tt_my_first_fpga.pdf -> Seite 3: Pin Name
ganz einfach als Bus schreiben! Also: Rx_Out[7..0]. Synthetisiert werden
dann, wie bei einem VHDL-Bus, 8 Pins.
Kein Wunder, es ist ja nicht klar, wo rx_data[] her kommt. Das
Blocksymbol definiert den Bus bzw. die Namen seiner Signale nicht. Es
müsste klappen, wenn du dem Bus den Namen rx_data[7..0] gibst (rechte
Maustaste -> Properties). Lass' mich wissen, ob es klappt.
War irgendwie mein Fehler.
Habe alle Dateien aus dem Ordner gelöscht außer:
rs232_rx.bsf
rs232_rx.vhd
Block1.bdf (Block1 ist die Hauptdatei)
Danach wieder neu compiliert und es werden jetzt die Daten übertragen
zum
DE-Board. Es funktioniert , wie auf dem Bild.
Jetzt möchte ich noch rx_en einbinden. rx_en ist '1' wenn Daten
anliegen.
Zur Zeit wird immer zur Datenausgabe gesprungen.
Hast du bitte eine Lösung?
Danke.
Gruss
Wie du geschrieben hast, der Bus war nicht beschriftet.
Es ist schon toll wie man so etwas in die Grafik einlesen kann und dann
weiter mit dem Grafiktool etwas daraus machen.
Gruss
peter schrieb:> Jetzt möchte ich noch rx_en einbinden. rx_en ist '1' wenn Daten> anliegen.>> Zur Zeit wird immer zur Datenausgabe gesprungen.>> Hast du bitte eine Lösung?
Verstehe ich nicht. In einer Schaltung wird nicht gesprungen. Was ist
gemeint? Evtl. mit rx_en den Datenbus registern? Das wäre doch zu
einfach für eine Frage.
Schau dir bitte mal die rs232_rx.vhd ganz unten an:
when ready =>
rx_data <= rxsr;
rx_state <= idle;
rx_en <= '1';
end case;
Ich möchte gerne erst die Daten an die LED geben, wenn ich geprüft habe
ob rx_en <='1' ist.
Danke.
Gruss
rx_en wird in dem Moment high, in dem die neuen Daten im Ausgaberegister
rx_data erscheinen, und 1 Clock danach wieder low. Wenn neue Daten
anstehen, wird rx_en per Definition high. Was gibt es da zu prüfen? Wer
(welcher Schaltungsteil) prüft? Wie genau soll der Zeitablauf sein und
wo soll da was nach einer Prüfung wie entschieden werden?
Uwe
Deine Aussage ist mir jetzt klar, das rx_en hat nichts mit dem
Datenfluss zu tun und kann evtl für etwas anderes als Steuerbit
verwendet werden ?
Gruss
Hi,
ich schließe daraus, dass du den Code nicht selber geschrieben hast,
sonst wäre dir die Funktion von rx_en klar.
Deine Vermutung ist richtig: Wenn eine weitere Schaltung die Zeichen der
RS-232 auswerten soll, muss sie natürlich informiert werden, wenn ein
neues Zeichen angekommen ist. Anhand der Daten ist das nicht zu
erkennen.
Aber jetzt geht etwas etwas weit in die Grundlagen der Elektronik etc..
Da erkläre ich auch gerne etwas, aber nicht schriftlich - dass wird mir
zu viel Aufwand.
Grüße, Uwe
Nein habe ich nur umgestellt für meine Gegebenheiten.
Die rx_en benutze ich für meinem Text 80x30 auf dem VGA vom DE0.
Wenn 1 Byte angekommen ist wird es vom DE0 auf dem Vga dargstellt.
Wenn rx_en <='0' dann spiele mit dem Daten die ich aus dem Blockram
hole.
Gruss
Wenn jetzt rx_en<='1' ist sollen die Rs232-Daten ausgegeben werden und
wenn , wenn rx_en<='0' ist soll nur xff auf den LED ausgegeben werden.
Diese Trennung möchte ich einmal bitte von dir erfahren im Grafikmodus.
Danke.
Gruss
Moin Peter,
bin wieder da. Deine Frage wundert mich allerdings: Es sind doch nur 8
Gatter und du weißt doch, wie man Gatter in die Schaltung einbaut. Oder
meintest du etwas Anderes? Es ergibt so wenig Sinn, nach jedem
Zeichenempfang für nur 20 ns das Zeichen am Ausgang anstehen zu haben,
aber vielleicht geht es dir nur um das Prinzip.
Grüße, Uwe
Ja, es geht mir um das Prinzip.
Wie kann man diesen Wechsel von 8 Leitungen schaltbar überwinden.
Wo werden jetzt die Gatter bzw die Leitungen für das Umschalten
getrennt?
Danke.
Gruss
Nach wie vor das selbe Problem. Entweder ein ganz grobes
Missverständniss, oder eine Frage nach etwas Trivialem. Gegenfrage: Wenn
du das Ganze in Hardware machen wolltest (74er-Serie), was würdest du
dann tun?
Was auch immer deine Antwort ist, ich fürchte, dass musst du alleine
lösen können müssen!
peter schrieb:> Wie kann man diesen Wechsel von 8 Leitungen schaltbar überwinden.> Wo werden jetzt die Gatter bzw die Leitungen für das Umschalten> getrennt?
Das ist eine so wirre Formulierung, dass ich gar nichts damit anfangen
kann.
Grüße, Uwe
Hmmm..., ich würde die 8 Verbindungen trennen zum den LED und in jede
Leitung 1 2-Wegeschalter einbauen der die 8 Leitungen von den LED
umleitet zu meiner Datenausgabe xff(8 Leitungen). Und die
2-Wegeschalter werden gesteuert durch rx_en(0 oder 1).
Gruss
---------------------------------------------------
library ieee;
use ieee.std_logic_1164.all;
entity mux is
port(
i0: in std_logic_vector(7 downto 0);
s: in std_logic_vector(0 downto 0);
x: out std_logic_vector(7 downto 0)
);
end mux;
architecture behv1 of mux is
begin
process(i0,s)
begin
case s is
when "0" => x <= i0;
when "1" => x <= "11111111";
when others => x <= "ZZZZZZZZ";
end case;
end process;
end behv1;
----------------------------------------
Wenn ich jetzt noch unterstelle, dass
i0 an rx_data
s an rx_en
und
x an "deine LEDs"
angeschlossen sein sollen, ist wenigstens klar was, du erreichen willst.
Aber es ist keine Schaltung. Ganz offen gefragt: Bist du in der Lage,
dieses bisschen Logik als Schaltung (mit Bleistift auf Papier oder in
dein BDF) zu zeichnen oder nicht? Wenn ja, warum tust du es nicht
einfach???
Uwe
Nein..., nicht mit rx_en.
Ich wollte es erstmal nur mit einem Schalter machen,jetzt funktioniert
es mit dem xff oder den rx_data[7..] an den LED, je nach Stellung "s" .
Danke.
Gruss