Komponent-Instanzen: Resize möglich?

OP #4088960
Lesenswert?
• ▲
▼
Hallo

Ich habe eine kleine Frage: Ist es möglich, ein Resize bei einer Instanz 
von einem Komponenten zu machen?

Ein Beispiel: Es soll eine Uhr aufgebaut werden
1
sec10_cnt: bcd_counter GENERIC MAP(
2
    cnt_width => 4,
3
    cnt_up_limit => 5
4
  )
5
  PORT MAP(
6
  ci => sec1_co,
7
  load_val => (others => '0'),
8
  load => rst_sec,
9
  rst => rst,
10
  clk => clk,
11
  co => sec10_co,
12
  count => sec10
13
);
Der Vektor sec10 ist (zwangsläufig) 4 Bit breit, aber der Zähler selber 
könnte mit nur 3 Bits aufgebaut werden. Über Generic wird der Vektor 
count definiert (cnt_width). Ist es jetzt möglich, den Zähler mit 3-Bit 
Breite zu realisieren und dann in der Instanz count auf 4-Bit zu 
verbreitern?

Das selbe gilt für die 10ner Stelle der Stunden. Hier muss der Zähler 
nur von 0 bis 2 Zählen können, die 7-Segment-Anzeige braucht dann aber 
einen 4-Bit Vektor.

Besten Dank für die Hilfe
MFG
Patrick
#4089010
Lesenswert?
• ▲
▼
Hi,

ja, natürlich. Aber zunächst stellt sich die Frage, warum du nicht bei 
der Zuweisung des Zählers zum 7-Sgmentdecoder die MSBits zufügst?

  siebensegment_decoder_input <= '0' & sec10_co;

Aber das war nicht deine Frage: Auch innerhalb der Entity geht es, aber 
dann musst du co eine feste Breite von 4 zuordnen. Bei der Ausgabe 
lautet es dann:

  co <= (3 downto cnt_width => '0') & interner_counter;

... glaube ich jedenfalls...

Nebenbei: Wieso heißt deine Entity bcd_counter? Das ist doch ein 
beliebig konfigurierbarer n-Bit-Zähler, der erst bei der Instanziierung 
durch cnt_up_limit => 9 zu einem BCD-Zähler wird.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 11 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.