Forum: FPGA, VHDL & Co. Verbindung mit Component von Grafikentwurf zum VHDL


von peter (Gast)


Angehängte Dateien:

Lesenswert?

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

von Marius W. (mw1987)


Lesenswert?

Das ist jetzt nicht dein Ernst, oder? Schreib das UND-Gatter doch direkt 
in deinen VHDL-Code:
1
A1 <= E1 and E2;

Gruß
Marius

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

peter schrieb:
> wie ich diese Componente oben jetzt in meinem Process einbinde im
> VHDL-Text.
Du kannst nicht eine grafische Komponente in den VHDL-Code einbinden.

Wie man in VHDL eine VHDL-Komponente instantiiert und verbindet, steht 
in jedem VHDL-buch unter "strukturelle Beschreibung". Alternativ findet 
man tausende Beispiele online. Dort wird z.B. der Totzeitgenerator 
zweimal in die PWM eingebunden:
http://www.lothar-miller.de/s9y/categories/47-PWM
Und dort wird die DDFS und die PWM zusammengeknotet:
http://www.lothar-miller.de/s9y/archives/57-Sinusausgabe-mit-PWM.html
Und ausserdem wird in jeder Testbench der Prüfling als Komponente 
instantiiert. Z.B. auch dort:
http://www.lothar-miller.de/s9y/archives/89-BCD-nach-Binaer-wandeln.html

: Bearbeitet durch Moderator
von Schlumpf (Gast)


Lesenswert?

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.

von peter (Gast)


Lesenswert?

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

von Paul B. (Gast)


Lesenswert?

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.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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...

von peter (Gast)


Lesenswert?

Jup, danke für die Info.

Was heisst bitte : "bauen lassen" ?

Danke.
Gruss

von Paul B. (Gast)


Lesenswert?

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.

von greg (Gast)


Lesenswert?

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.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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."

von peter (Gast)


Lesenswert?

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

von SirT (Gast)


Lesenswert?

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.

von Paul B. (Gast)


Lesenswert?

Arbeitest Du wirklich grafisch?
Das habe ich schon lange abgestellt.

von peter (Gast)


Lesenswert?

Nein..., ich habe mich mal dafür interessiert.
Ich dachte man könnte damit VHDL-Module entwerfen als Text.

Gruss

von Uwe (Gast)


Angehängte Dateien:

Lesenswert?

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"
6
-- CREATED    "Sun Jan 13 12:39:01 2013"
7
8
9
10
LIBRARY ieee;
11
USE ieee.std_logic_1164.all; 
12
13
LIBRARY work;
14
15
ENTITY iis_sync IS 
16
GENERIC (RefClockFreq : INTEGER := 125000
17
    );
18
  PORT
19
  (
20
    PLL_Clock :  IN  STD_LOGIC;
21
    WC_Ext :  IN  STD_LOGIC;
22
    Set_QS :  IN  STD_LOGIC;
23
    Set_DS :  IN  STD_LOGIC;
24
    Set_SS :  IN  STD_LOGIC;
25
    Set_D3 :  IN  STD_LOGIC;
26
    Set_22 :  IN  STD_LOGIC;
27
    FixedClock :  IN  STD_LOGIC;
28
    RefClock :  IN  STD_LOGIC;
29
    Set_4to1 :  IN  STD_LOGIC;
30
    AES_Rx_LRCk :  IN  STD_LOGIC_VECTOR(4 DOWNTO 1);
31
    AES_Rx_MClk :  IN  STD_LOGIC_VECTOR(4 DOWNTO 1);
32
    AES_Rx_SClk :  IN  STD_LOGIC_VECTOR(4 DOWNTO 1);
33
    IIS_MClk :  OUT  STD_LOGIC;
34
    IIS_SClk :  OUT  STD_LOGIC;
35
    IIS_LRCk :  OUT  STD_LOGIC;
36
    PLL_Close :  OUT  STD_LOGIC;
37
    IIS_QS :  OUT  STD_LOGIC;
38
    IIS_DS :  OUT  STD_LOGIC;
39
    WClk_Ref :  OUT  STD_LOGIC;
40
    IIS_SS :  OUT  STD_LOGIC;
41
    IIS_D3 :  OUT  STD_LOGIC;
42
    IIS_22M :  OUT  STD_LOGIC;
43
    AES_Rx_Present :  OUT  STD_LOGIC_VECTOR(4 DOWNTO 1);
44
    AES_Sync_Select :  OUT  STD_LOGIC_VECTOR(4 DOWNTO 1);
45
    WClk_Status :  OUT  STD_LOGIC_VECTOR(1 DOWNTO 0)
46
  );
47
END iis_sync;
48
49
ARCHITECTURE bdf_type OF iis_sync IS 
50
51
COMPONENT pll_detect
52
GENERIC (RefClockFreq : INTEGER
53
      );
54
  PORT(RefClock : IN STD_LOGIC;
55
     PLL_Clock : IN STD_LOGIC;
56
     PLL_Available : OUT STD_LOGIC
57
  );
58
END COMPONENT;
59
60
COMPONENT wc_determine
61
GENERIC (RefClockFreq : INTEGER
62
      );
63
  PORT(RefClock : IN STD_LOGIC;
64
     WClk : IN STD_LOGIC;
65
     WC_Present : OUT STD_LOGIC;
66
     WC_OK : OUT STD_LOGIC;
67
     WC_QS : OUT STD_LOGIC;
68
     WC_DS : OUT STD_LOGIC;
69
     WC_SS : OUT STD_LOGIC;
70
     WC_D3 : OUT STD_LOGIC;
71
     WC_22 : OUT STD_LOGIC
72
  );
73
END COMPONENT;
74
75
COMPONENT mux2to1
76
  PORT(InA : IN STD_LOGIC;
77
     InB : IN STD_LOGIC;

Und so weiter...

Einbauen konnte ich es ganz normal wie jedes VHDL-File.

Wie man sieht, habe ich auch VHDL-Files als Block-Grafiken (BSF-Files) 
in die Schaltung eingesetzt. Geht auch.

Hilfe dazu: 
http://quartushelp.altera.com/13.0/mergedProjects/design/ged/ged_com_create_hdl.htm

Grüße, Uwe

von peter (Gast)


Angehängte Dateien:

Lesenswert?

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

von peter (Gast)


Angehängte Dateien:

Lesenswert?

Jetzt funktioniert es.

1. Create VHDL Component DEclaration....
Abspeichern
2. Create HDL Design....

Dann ist diese VHD fertig.

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 10:29:32 2015"
18
19
LIBRARY ieee;
20
USE ieee.std_logic_1164.all; 
21
22
LIBRARY work;
23
24
ENTITY g_file IS 
25
  PORT
26
  (
27
    pin_name1 :  IN  STD_LOGIC;
28
    pin_name2 :  IN  STD_LOGIC;
29
    pin_name3 :  IN  STD_LOGIC;
30
    pin_name4 :  IN  STD_LOGIC;
31
    pin_name5 :  OUT  STD_LOGIC
32
  );
33
END g_file;
34
35
ARCHITECTURE bdf_type OF g_file IS 
36
37
SIGNAL  SYNTHESIZED_WIRE_0 :  STD_LOGIC;
38
SIGNAL  SYNTHESIZED_WIRE_1 :  STD_LOGIC;
39
40
BEGIN 
41
42
SYNTHESIZED_WIRE_0 <= pin_name1 AND pin_name2;
43
SYNTHESIZED_WIRE_1 <= pin_name4 OR pin_name3;
44
45
pin_name5 <= SYNTHESIZED_WIRE_0 AND SYNTHESIZED_WIRE_1;
46
47
END bdf_type;

von peter (Gast)


Lesenswert?

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

von peter (Gast)


Lesenswert?

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

von Uwe (Gast)


Lesenswert?

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

von Uwe (Gast)


Lesenswert?

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

von peter (Gast)


Lesenswert?

Ja danke für dein Info.

Gruss

von peter (Gast)


Lesenswert?

-------------------------------
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

von peter (Gast)


Angehängte Dateien:

Lesenswert?

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

von peter (Gast)


Lesenswert?

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
LIBRARY ieee;
20
USE ieee.std_logic_1164.all; 
21
22
LIBRARY work;
23
24
ENTITY g_file1 IS 
25
  PORT
26
  (
27
    pin_name2 :  IN  STD_LOGIC;
28
    pin_name1 :  IN  STD_LOGIC;
29
    pin_name3 :  OUT  STD_LOGIC
30
  );
31
END g_file1;
32
33
ARCHITECTURE bdf_type OF g_file1 IS 
34
35
BEGIN 
36
37
pin_name3 <= pin_name1 AND pin_name2;
38
39
END bdf_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"
17
-- CREATED    "Thu Feb 19 17:19:53 2015"
18
19
LIBRARY ieee;
20
USE ieee.std_logic_1164.all; 
21
22
LIBRARY work;
23
24
ENTITY g_file IS 
25
  PORT
26
  (
27
    pin_name11 :  IN  STD_LOGIC;
28
    pin_name22 :  IN  STD_LOGIC;
29
    pin_name33 :  IN  STD_LOGIC;
30
    pin_name44 :  IN  STD_LOGIC;
31
    pin_name0 :  OUT  STD_LOGIC
32
  );
33
END g_file;
34
35
ARCHITECTURE bdf_type OF g_file IS 
36
37
COMPONENT g_file1
38
  PORT(pin_name1 : IN STD_LOGIC;
39
     pin_name2 : IN STD_LOGIC;
40
     pin_name3 : OUT STD_LOGIC
41
  );
42
END COMPONENT;
43
44
SIGNAL  SYNTHESIZED_WIRE_0 :  STD_LOGIC;
45
SIGNAL  SYNTHESIZED_WIRE_1 :  STD_LOGIC;
46
47
BEGIN 
48
49
SYNTHESIZED_WIRE_1 <= pin_name11 XOR pin_name22;
50
51
b2v_inst1 : g_file1
52
PORT MAP(pin_name1 => SYNTHESIZED_WIRE_0,
53
     pin_name2 => pin_name44,
54
     pin_name3 => pin_name0);
55
56
SYNTHESIZED_WIRE_0 <= SYNTHESIZED_WIRE_1 AND pin_name33;
57
58
END bdf_type;

von klaus (Gast)


Lesenswert?

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.

von peter (Gast)


Lesenswert?

Hallo, Uwe, was mir noch fehlt, ich komme das nicht hinter, wie man
aus einer selbst geschriebenen VHD ein BSF-File erzeugt?

Danke.
Gruss

von Uwe (Gast)


Lesenswert?

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

von Uwe (Gast)


Lesenswert?

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**)

von Christian R. (supachris)


Lesenswert?

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...

von peter (Gast)


Lesenswert?

--------------------------------------------
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

von peter (Gast)


Lesenswert?

http://quartushelp.altera.com/current/mergedProjec...

Ich kann bitte leider daraus nicht lesen, wie ich vorgehen muss um aus 
einer VHD eine Grafik : BDF oder BSF zu erstellen.

Danke.
Gruss

von klaus (Gast)


Lesenswert?

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

von Uwe (Gast)


Angehängte Dateien:

Lesenswert?

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
library IEEE;
2
use IEEE.STD_LOGIC_1164.ALL;
3
use IEEE.STD_LOGIC_ARITH.ALL;
4
use IEEE.STD_LOGIC_UNSIGNED.ALL;
5
6
entity IIS2SPDIF is
7
  port
8
  (  Clock      : in std_logic;
9
    SDat      : in std_logic;
10
    SClk      : in std_logic;
11
    LRClk      : in std_logic;
12
    Pro        : in std_logic;
13
    SPDIFOut    : out std_logic
14
  );
15
end IIS2SPDIF;
16
17
architecture Delay1Sample of IIS2SPDIF is

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

von Uwe (Gast)


Lesenswert?

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.

von peter (Gast)


Lesenswert?

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

von peter (Gast)


Lesenswert?

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

von Uwe (Gast)


Lesenswert?

> 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

von peter (Gast)


Lesenswert?

Test schiebt dann etwas anderes an wenn es 1 ist.
So etwas wollte ich in der Grafik realisieren.

test=1 wenn  cnt=100000
1
 if (cnt<100000)  then 
2
      cnt  <= cnt+1;
3
      test<='0';
4
    else
5
      cnt  <= 0; 
6
      test<='1';
7
    end if;

Danke.
Gruss

von peter (Gast)


Lesenswert?

Die If-Schleife wird mit den Takt von 50Mhz  durchlaufen.

von Uwe (Gast)


Angehängte Dateien:

Lesenswert?

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
 end if;

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

von peter (Gast)


Lesenswert?

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

von peter (Gast)


Lesenswert?

Hallo Uwe, wie wird denn ein Takt immer weiter halbiert als Grafik?

Eingang : 50Mhz
Auagang : 25Mhz, 12,5Mhz usw?

Danke.
Gruss

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

peter schrieb:
> Die If-Schleife
... gibt es nicht. Es gibt bestenfalls eine if-Abfrage.

von Uwe (Gast)


Lesenswert?

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

von peter (Gast)


Lesenswert?

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

von Uwe (Gast)


Lesenswert?

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

von peter (Gast)


Lesenswert?

Nein, der VHDL war super expandiert.

Gruss

von peter (Gast)


Lesenswert?

-------------------------
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

von peter (Gast)


Lesenswert?

Aber im Grafikmodus die 74...Serie zu nutzen und das ist eine ganze 
Menge, kann man viel mit basteln habe ich festgestellt.

Gruss

von Uwe (Gast)


Lesenswert?

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

von peter (Gast)


Lesenswert?

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

von peter (Gast)


Lesenswert?

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

von Uwe (Gast)


Angehängte Dateien:

Lesenswert?

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?

von peter (Gast)


Lesenswert?

Ja danke. Und einmal den Weg dorthin.

Gruss

von peter (Gast)


Angehängte Dateien:

Lesenswert?

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

von Uwe (Gast)


Angehängte Dateien:

Lesenswert?

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...

von peter (Gast)


Lesenswert?

Ja danke...Zeit haben wir, das Wetter ist ungemütlich...

Vielen Dank.
Werde ich jetzt einmal nachverfolgen.

Gruss

von Uwe (Gast)


Lesenswert?

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.

von peter (Gast)


Angehängte Dateien:

Lesenswert?

Ja danke.
Ich habe die Busline velängert und darauf Pin_out.
Funktioniert nicht.
Im RTL- Viewer hängen die Ausgänge in der Luft.

Danke.
Gruss

von Uwe (Gast)


Lesenswert?

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.

von peter (Gast)


Angehängte Dateien:

Lesenswert?

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

von peter (Gast)


Lesenswert?

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

von peter (Gast)


Angehängte Dateien:

Lesenswert?

Hier ist mal die Zipdatei von Rs232.

von Uwe (Gast)


Lesenswert?

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.

von peter (Gast)


Lesenswert?

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

von Uwe (Gast)


Lesenswert?

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

von peter (Gast)


Lesenswert?

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

von Uwe (Gast)


Lesenswert?

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

von peter (Gast)


Lesenswert?

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

von peter (Gast)


Lesenswert?

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

von Uwe (Gast)


Lesenswert?

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

von peter (Gast)


Lesenswert?

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

von Uwe (Gast)


Lesenswert?

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

von peter (Gast)


Lesenswert?

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

von Uwe (Gast)


Lesenswert?

Zeichne eine Schaltung.

von peter (Gast)


Lesenswert?

Hmmm... 1x 8-fach-Multiplexer mit einem S0...

von Uwe (Gast)


Lesenswert?

Es wird ja immer undurchsichtiger.

Zeichne eine Schaltung!

Grüße, Uwe

von peter (Gast)


Lesenswert?

---------------------------------------------------
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;
----------------------------------------

von Uwe (Gast)


Lesenswert?

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

von peter (Gast)


Lesenswert?

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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.