Forum: FPGA, VHDL & Co. Beschreibung für eine Program


von Didi L. (kiji80)


Lesenswert?

hallo leute
ich bin ganz neue hier und ich finde diese Foren sehr interessant
ich arbeite mit quartus 2 und ich habe schon die 7 segment programmiert.
aber ich muss ein Bericht schreiben leider das ist mein erste programm 
und ich weiss nicht wie und was soll ich schreiben
ich bitte um eure Hilfe
hier ist den Programm mit case und ander genauso mit With select

 entity segment7 is
port (
reset : in std_logic;
switch : in std_logic;
seg7_k : out std_logic_vector(6 downto 0)
);
end segment7;

architecture behavioral of segment7 is
signal counter4 : std_logic_vector(3 downto 0);
signal reg_seg7 : std_logic_vector(6 downto 0);
begin

process (reset, switch) begin
if (reset = '1') then
counter4 <= "0000";
elsif (switch'event and switch = '1') then
counter4 <= counter4 + 1;
end if;
end process;

process (counter4) begin
case counter4 is
when "0000" => reg_seg7 <= "0111111";
when "0001" => reg_seg7 <= "0000110";
when "0010" => reg_seg7 <= "1011011";
when "0011" => reg_seg7 <= "1001111";
when "0100" => reg_seg7 <= "1100110";
when "0101" => reg_seg7 <= "1101101";
when "0110" => reg_seg7 <= "1111101";
when "0111" => reg_seg7 <= "0000111";
when "1000" => reg_seg7 <= "1111111";
when "1001" => reg_seg7 <= "1101111";
when "1010" => reg_seg7 <= "1110111";
when "1011" => reg_seg7 <= "1111100";
when "1100" => reg_seg7 <= "0111001";
when "1101" => reg_seg7 <= "1011110";
when "1110" => reg_seg7 <= "1111001";
when "1111" => reg_seg7 <= "1110001";
when others => reg_seg7 <= "XXXXXXX";
end case;
end process;

seg7_k <= not reg_seg7;


end behavioral;

von Peter (Gast)


Lesenswert?

Hallo,

gibt es andere ähnliche Berichte?

Was ist Ziel dieses Berichtes?

Was soll inhaltlich vorkommen?

Gruß

Peter

von Didi L. (kiji80)


Lesenswert?

hallo
ich arbeit auf Alteraboard cyclone II und ich muss alle peripherique des 
Boards verstehen und beschreiben und ich habe mit 7 segment angefangen.
danke

von Thomas H. (mac4ever)


Lesenswert?

Also ich würde
1
when others => reg_seg7 <= "XXXXXXX";
erstmal durch
1
when others => reg_seg7 <= "0000000";
ersetzen. Denn einen undefinierten Zustand auf die Anzeige zu legen ist 
sicher nicht im Sinne der Erfinders :)

Zum Bericht:
Wenn Du das Board und dessen Peripherie beschrieben sollst, dann versuch 
doch einfach Deine Programmierbeispiele in Worte zu fassen.
Z.B.: Ich lasse eine Variable von 0 bis 15 hochlaufen und gebe den 
Hex-Wert auf der 7-Seg Anzeige aus ...

Vielleicht ein wenig wissenschaftlicher, aber prinzipiell würde ich es 
wohl so machen ;)

von Matthias F. (flint)


Lesenswert?

Begabte Menschen können über Zeilen wie diese
1
seg7_k <= not reg_seg7;

ganze Seminararbeiten schreiben ;) . Ist ja nicht offensichtlich, warum 
diese Bits da invertiert werden (zumindest für die meisten nicht).

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.