mikrocontroller.net

Forum: FPGA, VHDL & Co. 74HC191(anfänger frage)


Autor: Nabil Almuam (Firma: ABB) (safiwave)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hello all!
ich such mir jetzt ein  synchronous 4-Bit UP/DOWN binary counter,aber 
ich find keinen in der Xilinx lib.Ich arbeite jetzt mit schematic editor 
und meine aufgabe stellt darin, dass ich eine schaltung eingebe wie ich 
im Schaltplan hab.wenn es kein 74HC191 gibt soll ich das selbst 
programmieren und wie soll ich dass machen.
Ich danke euch im voraus.
MFG
safi

Autor: Christoph Kessler (db1uq) (christoph_kessler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
in Verilog sieht sowas etwa so aus:
module countud16 (reset,ce,updown,clock,q,tc);
  input clock,reset,updown,ce;
  output [15:0] q;
  output tc;
  reg [15:0] count_tmp;
  always @(posedge clock or posedge reset)
  begin
    if (reset == 1'b1)
      count_tmp <= 16'b0000000000000000;
    else if (ce)
    begin
      if (updown == 1'b1)
      count_tmp <= count_tmp + 16'b0000000000000001;
      else
      count_tmp <= count_tmp - 16'b0000000000000001;
    end
  end
  assign q[15:0] = count_tmp[15:0];
  assign tc = (count_tmp == 16'b1111111111111111);
endmodule
Das ganze wird als countud.v abgespeichert und im Syboleditor ein Symbol 
dazu gezeichnet.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Nabil Almuam (Firma ABB) (safiwave)

>ich such mir jetzt ein  synchronous 4-Bit UP/DOWN binary counter,aber
>ich find keinen in der Xilinx lib.

Kann ich kaum glauben. Such mal genau. Die heissen meist CNTBxx.

>und meine aufgabe stellt darin, dass ich eine schaltung eingebe wie ich
>im Schaltplan hab.wenn es kein 74HC191 gibt soll ich das selbst
>programmieren und wie soll ich dass machen.

Man kann VHDL einbinden. Sieht dann so aus.
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity cnt_up_down is
    Port ( clk   : in std_logic;
           dir   : in std_logic;
           en    : in std_logic;
           reset : in std_logic;
           cnt   : out std_logic_vector(3 downto 0));
end cnt_up_down;

architecture Behavioral of cnt_up_down is

signal cnt_int: std_logic_vector(3 downto 0);

begin

process(clk)
begin
  if rising_edge(clk) then
    if reset='1' then
      cnt_int <= "0000";
    elsif en ='1' then
      if dir='0' then
        cnt_int <= cnt_int +1;
      else
        cnt_int <= cnt_int -1;
      end if;
    end if;
  end if;
end process;

cnt <= cnt_int;

end Behavioral;

MFG
Falk

Autor: Christoph Kessler (db1uq) (christoph_kessler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Up-down" heißt bei Xilinx "bidirektional"
Im PDF zur Xilinx-Schematic-Library lib.pdf steht das hier:

CC8CLED, CC16CLED
Macro: 8-, 16-Bit Loadable Cascadable Bidirectional Binary Counters
with Clock Enable and Asynchronous Clear"

CB2X1, CB4X1, CB8X1, CB16X1
2-, 4-, 8-, 16-Bit Loadable Cascadable Bidirectional Binary Counters
with Clock Enable and Asynchronous Clear

CB2X2, CB4X2, CB8X2, CB16X2
2-, 4-, 8-, and 16-Bit Loadable Cascadable Bidirectional Binary
Counters with Clock Enable and Synchronous Reset

CBD2CLED, CBD4CLED, CBD8CLED, CBD16CLED
2-, 4-, 8-, 16-Bit Loadable Cascadable Bidirectional Dual Edge
Triggered Binary Counters with Clock Enable and Asynchronous Clear

CBD2X1, CBD4X1, CBD8X1, CBD16X1
2-, 4-, 8-, 16-Bit Loadable Cascadable Bidirectional Dual Edge
Triggered Binary Counters with Clock Enable and Asynchronous Clear

CBD2X2, CBD4X2, CBD8X2, CBD16X2
2-, 4-, 8-, and 16-Bit Loadable Cascadable Bidirectional Dual Edge
Triggered Binary Counters with Clock Enable and Synchronous Reset

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.