⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cosine.tdf

📁 15个Altera的IP的源码,给大家分享下。
💻 TDF
字号:
TITLE "cosine";

-- Version 1.0, 
-- Copyright Rune Baeverrud, August 19, 1997
-- You may use or distribute this function freely,
-- provided you do not remove this copyright notice.
-- If you have questions or comments, feel free to
-- contact me by email at r@acte.no 
-- World Wide WEB: http://193.215.128.3/freecore

INCLUDE "lpm_rom";
INCLUDE "lpm_add_sub";
INCLUDE "lpm_mux";

PARAMETERS
(
  POLARITY = "BIPOLAR",
  LEVEL1   = "UNREGISTERED",
  LEVEL2   = "UNREGISTERED",
  LEVEL3   = "UNREGISTERED"
);

SUBDESIGN cosine
(
  SysClk      : INPUT;
  Angle[8..0] : INPUT;
  Wave[7..0]  : OUTPUT;
)

VARIABLE
  IF POLARITY == "UNIPOLAR" GENERATE
    Rom : LPM_ROM WITH (LPM_WIDTH=8, LPM_WIDTHAD=8, LPM_NUMWORDS=256,
            LPM_FILE="cos180p.MIF", LPM_ADDRESS_CONTROL=LEVEL2,
            LPM_OUTDATA=LEVEL3, USE_EAB = "YES");
  ELSE GENERATE
    Rom : LPM_ROM WITH (LPM_WIDTH=8, LPM_WIDTHAD=8, LPM_NUMWORDS=256,
            LPM_FILE="cos180n.MIF", LPM_ADDRESS_CONTROL=LEVEL2,
            LPM_OUTDATA=LEVEL3, USE_EAB = "YES");
  END GENERATE;

  NAngle[7..0], NIndex[7..0] : NODE;

BEGIN
  ASSERT (POLARITY == "BIPOLAR" OR POLARITY == "UNIPOLAR")
    REPORT """Cosine"" POLARITY must be ""BIPOLAR"" or ""UNIPOLAR"". It is now ""%"""
    POLARITY SEVERITY ERROR;
 
  ASSERT (LEVEL1 == "REGISTERED" OR LEVEL1 == "UNREGISTERED")
    REPORT "Cosine ""LEVEL1"" must be ""REGISTERED"" or ""UNREGISTERED"". It is now ""%"""
    LEVEL1 SEVERITY ERROR;

  ASSERT (LEVEL2 == "REGISTERED" OR LEVEL2 == "UNREGISTERED")
    REPORT "Cosine ""LEVEL2"" must be ""REGISTERED"" or ""UNREGISTERED"". It is now ""%"""
    LEVEL2 SEVERITY ERROR;
 
  ASSERT (LEVEL3 == "REGISTERED" OR LEVEL3 == "UNREGISTERED")
    REPORT "Cosine ""LEVEL3"" must be ""REGISTERED"" or ""UNREGISTERED"". It is now ""%"""
    LEVEL3 SEVERITY ERROR;
 
  ASSERT REPORT "Compiling ""cosine"" for POLARITY = ""%""" POLARITY SEVERITY INFO;
 
  (NAngle[],,) = LPM_ADD_SUB (, 255, Angle[7..0],,,)
                   WITH (LPM_WIDTH=8, LPM_DIRECTION="SUB", LPM_REPRESENTATION="UNSIGNED",
                     LPM_PIPELINE=0, ONE_INPUT_IS_CONSTANT="YES");

  IF LEVEL1 == "REGISTERED" GENERATE
    NIndex[] = LPM_MUX (NAngle[], Angle[7..0], Angle[8], SysClk,)
                 WITH (LPM_WIDTH=8, LPM_SIZE=2, LPM_WIDTHS=1, LPM_PIPELINE=1);
  ELSE GENERATE
    NIndex[] = LPM_MUX (NAngle[], Angle[7..0], Angle[8],,)
                 WITH (LPM_WIDTH=8, LPM_SIZE=2, LPM_WIDTHS=1, LPM_PIPELINE=0);
  END GENERATE;

  IF LEVEL2 == "REGISTERED" GENERATE
    Rom.inclock  = SysClk;
  END GENERATE;

  IF LEVEL3 == "REGISTERED" GENERATE
    Rom.outclock = SysClk;
  END GENERATE;

  Rom.address[] = NIndex[];
  Wave[] = Rom.q[];

END;
  
 


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -