📄 prbs_byte.tdf
字号:
-- 按字节方式产生伪随机码
--以下的程序是按字节方式产生伪随机图案,对于该程序中不同图案的选择采用不同的使能信号来控制,同样,程序中对不同的图案输出的极性按照表6-5的规定进行了相应的处理。
--////////////////////////////////////////////////////////////////////////////////////////////////////////////
--// 该电路为按比特方式产生伪随机码电路; //
--// 该电路的输入信号为 prbs_byte_sel 和 byte_clock 信号; //
--// 其输出为 prbs_byte_out 信号; //
--////////////////////////////////////////////////////////////////////////////////////////////////////////////
SUBDESIGN prbs_byte -- 设计实体名;
(
clock,en_9,en_10,en_11,en_15,en_20,en_23 : INPUT;
prbs_byte_9[7..0],prbs_byte_10[7..0],prbs_byte_11[7..0] : OUTPUT;
prbs_byte_15[7..0],prbs_byte_20[7..0],prbs_byte_23[7..0]: OUTPUT;
)
VARIABLE
m[7..0][2..0]:DFF; -- 说明一个 D 触发组;
BEGIN
IF en_9 THEN --PRBS图案产生,n=9
m[][].clk=clock;
IF (m[][]!=H"0") THEN
m[][0].d=m[][1];
m[7][1].d=m[4][1] xor m[0][0]; m[6][1].d=m[7][0] xor m[3][0];
m[5][1].d=m[6][0] xor m[2][0]; m[4][1].d=m[5][0] xor m[1][0];
m[3][1].d=m[4][0] xor m[0][0]; m[2][1].d=m[7][1] xor m[3][0];
m[1][1].d=m[6][1] xor m[2][0]; m[0][1].d=m[5][1] xor m[1][0];
ELSE
m[0][0].d=VCC;
END IF;
prbs_byte_9[7]=m[6][0]; prbs_byte_9[6]=m[5][0];
prbs_byte_9[5]=m[4][0]; prbs_byte_9[4]=m[3][0];
prbs_byte_9[3]=m[2][0]; prbs_byte_9[2]=m[1][0];
prbs_byte_9[1]=m[0][0]; prbs_byte_9[0]=m[7][0];
END IF;
IF en_10 THEN --PRBS图案产生,n=10
m[][].clk=clock;
IF (m[][]!=H"0") THEN
m[][0].d=m[][1];
m[7][1].d=m[6][1] xor m[1][0]; m[6][1].d=m[5][1] xor m[0][0];
m[5][1].d=m[7][0] xor m[4][0]; m[4][1].d=m[6][0] xor m[3][0];
m[3][1].d=m[5][0] xor m[2][0]; m[2][1].d=m[4][0] xor m[1][0];
m[1][1].d=m[3][0] xor m[0][0]; m[0][1].d=m[7][1] xor m[2][0];
ELSE
m[0][0].d=VCC;
END IF;
prbs_byte_9[7]=!m[5][0]; prbs_byte_9[6]=!m[4][0];
prbs_byte_9[5]=!m[3][0]; prbs_byte_9[4]=!m[2][0];
prbs_byte_9[3]=!m[1][0]; prbs_byte_9[2]=!m[0][0];
prbs_byte_9[1]=!m[7][0]; prbs_byte_9[0]=!m[6][0];
IF en_11 THEN --PRBS图案产生,n=11
m[][].clk=clock;
IF (m[][]!=H"0") THEN
m[][0].d=m[][1];
m[7][1].d=m[2][0] xor m[0][0]; m[6][1].d=m[7][1] xor m[1][0];
m[5][1].d=m[6][1] xor m[0][0]; m[4][1].d=m[7][0] xor m[5][0];
m[3][1].d=m[6][0] xor m[4][0]; m[2][1].d=m[5][0] xor m[3][0];
m[1][1].d=m[4][0] xor m[2][0]; m[0][1].d=m[3][0] xor m[1][0];
ELSE
m[0][0].d=VCC;
END IF;
prbs_byte_9[7]=m[4][0]; prbs_byte_9[6]=m[3][0];
prbs_byte_9[5]=m[2][0]; prbs_byte_9[4]=m[1][0];
prbs_byte_9[3]=m[0][0]; prbs_byte_9[2]=m[7][0];
prbs_byte_9[1]=m[6][0]; prbs_byte_9[0]=m[5][0];
IF en_15 THEN --PRBS图案产生,n=15
m[][].clk=clock;
IF (m[][]!=H"0") THEN
m[][0].d=m[][1];
m[7][1].d=m[6][0] xor m[5][0]; m[6][1].d=m[5][0] xor m[4][0];
m[5][1].d=m[4][0] xor m[3][0]; m[4][1].d=m[3][0] xor m[2][0];
m[3][1].d=m[2][0] xor m[1][0]; m[2][1].d=m[1][0] xor m[0][0];
m[1][1].d=m[7][1] xor m[0][0]; m[0][1].d=m[7][0] xor m[6][0];
ELSE
m[0][0].d=VCC;
END IF;
prbs_byte_9[7]=!m[0][0]; prbs_byte_9[6]=!m[7][0];
prbs_byte_9[5]=!m[6][0]; prbs_byte_9[4]=!m[5][0];
prbs_byte_9[3]=!m[4][0]; prbs_byte_9[2]=!m[3][0];
prbs_byte_9[1]=!m[2][0]; prbs_byte_9[0]=!m[1][0];
IF en_20 THEN --PRBS图案产生,n=20
m[][].clk=clock;
IF (m[][]!=H"0") THEN
m[][0].d=m[][1];
m[][1].d=m[][2];
m[7][2].d=m[3][0] xor m[0][0]; m[6][2].d=m[7][1] xor m[2][0];
m[5][2].d=m[6][1] xor m[1][0]; m[4][2].d=m[5][1] xor m[0][0];
m[3][2].d=m[7][0] xor m[4][0]; m[2][2].d=m[6][0] xor m[3][0];
m[1][2].d=m[5][0] xor m[2][0]; m[0][2].d=m[4][0] xor m[1][0];
ELSE
m[0][0].d=VCC;
END IF;
prbs_byte_9[7]=m[3][0]; prbs_byte_9[6]=m[2][0];
prbs_byte_9[5]=m[1][0]; prbs_byte_9[4]=m[0][0];
prbs_byte_9[3]=m[7][0]; prbs_byte_9[2]=m[6][0];
prbs_byte_9[1]=m[5][0]; prbs_byte_9[0]=m[4][0];
IF en_23 THEN --PRBS图案产生,n=23
m[][].clk=clock;
IF (m[][]!=H"0") THEN
m[][0].d=m[][1];
m[][1].d=m[][2];
m[7][2].d=m[6][0] xor m[1][0]; m[6][2].d=m[5][0] xor m[0][0];
m[5][2].d=m[7][1] xor m[4][0]; m[4][2].d=m[6][1] xor m[3][0];
m[3][2].d=m[5][1] xor m[2][0]; m[2][2].d=m[4][1] xor m[1][0];
m[1][2].d=m[3][1] xor m[0][0]; m[0][2].d=m[7][0] xor m[2][0];
ELSE
m[0][0].d=VCC;
END IF;
prbs_byte_9[7]=!m[0][0]; prbs_byte_9[6]=!m[7][0];
prbs_byte_9[5]=!m[6][0]; prbs_byte_9[4]=!m[5][0];
prbs_byte_9[3]=!m[4][0]; prbs_byte_9[2]=!m[3][0];
prbs_byte_9[1]=!m[2][0]; prbs_byte_9[0]=!m[1][0];
END;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -