mikrocontroller.net

Forum: FPGA, VHDL & Co. Filter Bauen mit VHDL


Autor: Chindji Auguste (feukam)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo
ich bin VHDl Anfänger  und moechte ein Filter bzw. CIC filter bauen . 
Ich habe vorher  eine Mischung von der sinus/cosinus mit des ADC-Daten 
gemacht und möchte die Ergebnissen Filter.
Ungefähr          W= cos*ADC_DATEN;
                  Z= Sin*ADC_DATEN;
Eine CIC-Filter gibt es schon in Xilinx IP-Core aber wie Kann ich das 
machen? Hat jemand einen Tipp fuer mich?


Danke

Gruß.
Auguste


-- You must compile the wrapper file CICDecimator.vhd when simulating
-- the core, CICDecimator. When compiling the wrapper file, be sure to
-- reference the XilinxCoreLib VHDL simulation library. For detailed
-- instructions, please refer to the "CORE Generator Help".

-- The synthesis directives "translate_off/translate_on" specified
-- below are supported by Xilinx, Mentor Graphics and Synplicity
-- synthesis tools. Ensure they are correct for your synthesis tool(s).

LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
-- synthesis translate_off
Library XilinxCoreLib;
-- synthesis translate_on
ENTITY CICDecimator IS
  port (
  DIN: IN std_logic_VECTOR(9 downto 0);
  ND: IN std_logic;
  RFD: OUT std_logic;
  CLK: IN std_logic;
  DOUT: OUT std_logic_VECTOR(22 downto 0);
  RDY: OUT std_logic;
  LD_DIN: IN std_logic_VECTOR(13 downto 0);
  WE: IN std_logic);
END CICDecimator;

ARCHITECTURE CICDecimator_a OF CICDecimator IS
-- synthesis translate_off
component wrapped_CICDecimator
  port (
  DIN: IN std_logic_VECTOR(9 downto 0);
  ND: IN std_logic;
  RFD: OUT std_logic;
  CLK: IN std_logic;
  DOUT: OUT std_logic_VECTOR(22 downto 0);
  RDY: OUT std_logic;
  LD_DIN: IN std_logic_VECTOR(13 downto 0);
  WE: IN std_logic);
end component;

-- Configuration specification
  for all : wrapped_CICDecimator use entity 
XilinxCoreLib.C_CIC_V3_0(behavioral)
    generic map(
      c_differential_delay => 1,
      c_sample_rate_change_max => 16383,
      c_number_channels => 1,
      c_filter_type => 2,
      c_result_width => 23,
      c_enable_rlocs => 0,
      c_sample_rate_change => 4,
      c_latency => 1,
      c_sample_rate_change_min => 4,
      c_sample_rate_change_type => 1,
      c_data_width => 10,
      c_stages => 1);
-- synthesis translate_on
BEGIN
-- synthesis translate_off
U0 : wrapped_CICDecimator
    port map (
      DIN => DIN,
      ND => ND,
      RFD => RFD,
      CLK => CLK,
      DOUT => DOUT,
      RDY => RDY,
      LD_DIN => LD_DIN,
      WE => WE);
-- synthesis translate_on

END CICDecimator_a;

Autor: Xilinxuser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du hast den CIC ja schon gefunden. Du musst im Xilin ISE dieses 
Wrapperfile einbinden (dazuladen) und im vorhandenen VHDl, wo es benutzt 
werden soll, als Componnente delarieren. Dann einmal / mehrfach 
instanzirien und anschliessen.

Wie die Komponente heissen muss, steht im Wrapperfile.

Nach der Synthese findet Xilinx ISE den core und baut in grafisch als 
Unterpunkt in deine VHDL ein.

du brauchst dann nur noch eine state machine, die dieses Filter mit 
Daten füttert.

Autor: Chindji Auguste (feukam)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke  für den Tipp
Ich habe leider nicht den
Wrapperfile  gefunden . Wird das auch mit der CIC-Core generiert?
 Wie ich das verstanden habe muss ich jetzt eine Automat bauen ?
Grüß
Chindji

Autor: Rick Dangerus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das was Du gepostet hast, ist das Wrapperfile. Mehr VHDL wirst Du von 
dem Core nicht zu sehen bekommen.

Rick

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ISE gibt mittels des core Generators ein " *.xco " aus, das in das 
aktive Verzeichnis muss. Der wrapper muss ins Projekt. Eingebunden wird 
über HDL-Instanzierung oder Generation eines Symbols und Benutzung im 
SCH-Design.

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.