Hallo zusammen,
ich mache gerade meine ersten Gehversuche mit VHDL und CPLDs
bin heute mehrere Stunden drangesessen, dass die Übertragung klappt.
Das Xilinx WebPack schreckt ja am Anfang eher ab, als dass es hilft. ^^
nun bin ich also soweit, dass ich keine allgemeine Planlosigkeit
verspür, sondern ein konkretes Problem hab.
An Pin 1-4 sind 4 LEDs angeschlossen (über Widerstand an GND)
An Pin 5-6 sind 2 Buttons angeschlossen (auf GND, keine ext. Pull-Ups)
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 |
|
7 | entity main is
|
8 | port( myIn: in bit;
|
9 | In1: in bit;
|
10 | In2: in bit;
|
11 | Out1: out bit;
|
12 | Out2: out bit;
|
13 | Out3: out bit;
|
14 | Out4: out bit);
|
15 | end main;
|
16 |
|
17 | architecture RTL of main is
|
18 | begin
|
19 | Out1 <= In1;
|
20 | Out2 <= not In1;
|
21 | Out3 <= In2;
|
22 | Out4 <= not In2;
|
23 | end RTL;
|
pinbelegung:
1 | #Outputs
|
2 | NET "Out1" LOC = "P1" ;
|
3 | NET "Out2" LOC = "P2" ;
|
4 | NET "Out3" LOC = "P3" ;
|
5 | NET "Out4" LOC = "P4" ;
|
6 | #Inputs
|
7 | NET "In1" LOC = "P5" ;
|
8 | NET "In2" LOC = "P6" ;
|
1. Die Ausgabe funktioniert nur einmal. Also sobald ich einen Taster
drückt, wechseln die LEDs einmalig. Sie schalten aber beim Loslassen
nicht mehr zurück. Wenn ich das Programm richtig geschrieben hab (???),
liegt das daran, dass die beiden Eingänge intern noch keine Pull-Ups
haben - also das "Loslassen" nicht mehr erkannt wird. Wie realisiere ich
es, dass die Eingänge standardmäßig auf 1 sind?
2. Den Port myIn (noch von Früher) krieg ich nicht mehr weg - sonst
wirft das "Translate" einen Fehler. Kann mir jemand sagen, woher das
kommt? Wo muss ich ihn noch rauslöschen, wenn ich ihn im main.vhd
rauswerfe?
Auch wenn ich ihn aus dem vhd rausnehme, steht er nach dem synthesizen
z.B. noch als "Top Level Port" drin, wenn man auf den Button "View RTL
Schematic" drücke :S