📄 cosine.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 + -