📄 rrc.tdf
字号:
INCLUDE "LPM_ROM.INC";
INCLUDE "LPM_MUX.INC";
SUBDESIGN RRC
(
CLK8X: INPUT; --样点速率
IDS: INPUT; --I路输入数据
QDS: INPUT; --Q路输入数据
CLK1X: OUTPUT; --码元速率
IOUT[9..0]: OUTPUT; --I路输出
QOUT[9..0]: OUTPUT; --Q路输出
IWRT: OUTPUT; --I路DAC写信号
QWRT: OUTPUT; --Q路DAC写信号
ICLK: OUTPUT; --I路DAC时钟
QCLK: OUTPUT; --Q路DAC时钟
)
VARIABLE
IBUFFER[7..0]: DFF;
QBUFFER[7..0]: DFF;
IADDROM[9..0]: NODE;
QADDROM[9..0]: NODE;
IMUXDATA[1..0][7..0]: NODE;
QMUXDATA[1..0][7..0]: NODE;
INODE[9..0]: NODE;
QNODE[9..0]: NODE;
COUNTER[2..0]: DFF;
RRCADD[2..0]: NODE; --低位地址
BEGIN
COUNTER[].CLK = CLK8X;
COUNTER[].D = COUNTER[].Q + 1;
CLK1X = COUNTER[2].Q;
RRCADD[2] = NOT COUNTER[2].Q;
RRCADD[1] = NOT (COUNTER[2].Q XOR COUNTER[1].Q);
RRCADD[0] = NOT (COUNTER[2].Q XOR COUNTER[0].Q);
IBUFFER[].CLK = CLK1X;
QBUFFER[].CLK = CLK1X;
IBUFFER[0].D = IDS;
QBUFFER[0].D = QDS;
IBUFFER[7..1].D = IBUFFER[6..0].Q; --移位寄存器
QBUFFER[7..1].D = QBUFFER[6..0].Q;
IMUXDATA[1][7..0] = IBUFFER[7..0].Q;
IMUXDATA[0][7..0] = IBUFFER[0..7].Q;
IADDROM[1..0] = RRCADD[1..0];
IADDROM[9..2] = LPM_MUX(.SEL[] = RRCADD[2], .DATA[][] = IMUXDATA[][])
WITH(LPM_WIDTH = 8, LPM_SIZE = 2, LPM_WIDTHS = 1)
RETURNS(.RESULT[]);
QMUXDATA[1][7..0] = QBUFFER[7..0].Q;
QMUXDATA[0][7..0] = QBUFFER[0..7].Q;
QADDROM[1..0] = RRCADD[1..0];
QADDROM[9..2] = LPM_MUX(.SEL[] = RRCADD[2], .DATA[][] = QMUXDATA[][])
WITH(LPM_WIDTH = 8, LPM_SIZE = 2, LPM_WIDTHS = 1)
RETURNS(.RESULT[]);
INODE[] = LPM_ROM(.INCLOCK = !CLK8X, .OUTCLOCK = !CLK8X, .ADDRESS[] = IADDROM[])
WITH(LPM_WIDTH = 10, LPM_WIDTHAD = 10, LPM_FILE = "DSSSRRC.MIF")
RETURNS(.Q[]); --I路ROM描述
QNODE[] = LPM_ROM(.INCLOCK = !CLK8X, .OUTCLOCK = !CLK8X, .ADDRESS[] = QADDROM[])
WITH(LPM_WIDTH = 10, LPM_WIDTHAD = 10, LPM_FILE = "DSSSRRC.MIF")
RETURNS(.Q[]); --Q路ROM描述
ICLK = CLK8X;
QCLK = CLK8X;
IWRT = CLK8X;
QWRT = CLK8X;
IOUT[] = (!INODE[9],INODE[8..0]);
QOUT[] = (!QNODE[9],QNODE[8..0]);
END;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -