?? 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 + -