📄 fbr_tr16.v
字号:
`timescale 1ns / 1ps
////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer:
//
// Create Date: 10:27:03 03/31/09
// Design Name:
// Module Name: FBR_TR16
// Project Name:
// Target Device:
// Tool versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
////////////////////////////////////////////////////////////////////////////////
module FBR_TR16(TXFLGENB, TXFLAG, TXDATA, TXCNTL, TX, TXDIV0,TXDIV1,TXCLK,TCLKENB,
RXFLGENB, RX, RXDIV0,RXDIV1,REFCLK,ESMPXENB,
WSYNCDSB, PASSENB, RGCLK,
GCLK_64M, GCLK_32M, TESTCLKC,SEGMENT,
FRMTRIG,SDTTL,
//16路16位发送数据
TXSUB1X,TXSUB2X,TXSUB3X,TXSUB4X,TXSUB5X,TXSUB6X,TXSUB7X,
TXSUB8X,TXSUB9X,TXSUBAX,TXSUBBX,TXSUBCX,TXSUBDX,TXSUBEX,TXSUBFX,
//16路16位接收数据
RXSUB1X,RXSUB2X,RXSUB3X,RXSUB4X,RXSUB5X,RXSUB6X,RXSUB7X,
RXSUB8X,RXSUB9X,RXSUBAX,RXSUBBX,RXSUBCX,RXSUBDX,RXSUBEX,RXSUBFX
);
//----------------------------发送参数----------------------------------------------
output TXFLGENB,TXFLAG,TXDATA,TXCNTL,TXDIV0,TXDIV1,TXCLK,TCLKENB,ESMPXENB;
output [15:0]TX;
//----------------------------接收参数----------------------------------------------
input RGCLK; // RXREADY,RXERROR,RXDATA,RXCNTL,RXFLAG,
output RXFLGENB,RXDIV0,RXDIV1,REFCLK,WSYNCDSB,PASSENB;
input [15:0]RX;
//---------------------------------------------------------------------------------
input GCLK_64M,GCLK_32M,TESTCLKC;
input [4:0] SEGMENT;
input [15:0] TXSUB1X,TXSUB2X,TXSUB3X,TXSUB4X,TXSUB5X,TXSUB6X,TXSUB7X;
input [15:0] TXSUB8X,TXSUB9X,TXSUBAX,TXSUBBX,TXSUBCX,TXSUBDX,TXSUBEX,TXSUBFX;
output [15:0] RXSUB1X,RXSUB2X,RXSUB3X,RXSUB4X,RXSUB5X,RXSUB6X,RXSUB7X;
output [15:0] RXSUB8X,RXSUB9X,RXSUBAX,RXSUBBX,RXSUBCX,RXSUBDX,RXSUBEX,RXSUBFX;
output FRMTRIG;
input SDTTL;
//-------------------发送参数设置--------------------------------------------------
assign ESMPXENB=1; // 增强单工模式,必须使能;
assign TXCNTL=0; // 使能传输控制字;
assign TXDATA=1; // 使能传输数据字
assign TXDIV0=1;
assign TXDIV1=0; // 锁相,发送速率32M
assign TXFLGENB=1; // 标志位模式选择;
assign TCLKENB=0; // 不使能,锁相产生高速串行数据
assign TXCLK=!GCLK_32M; //为什么要取反?相当于再下降沿将数据发送出去,否则
//采样点在数据的前沿,会造成不稳定
//------------------接收参数设置---------------------------------------------------
assign REFCLK=TESTCLKC;
assign RXDIV0=1;
assign RXDIV1=0;
assign RXFLGENB=1;
assign WSYNCDSB=0;
assign PASSENB=0; // 已经锁死到低电平
//------------------产生测试信号---------------------------------------------------
reg [3:0] COUNT;
always @ (posedge GCLK_64M)
COUNT<=COUNT+1;
assign TXFLAG=COUNT[3];
wire [15:0]TESTTX,WORKTX; //TESTTX用来测试模式发送,WORKTX工作模式发送
assign TESTTX[15:0]={16{COUNT[3]}};//产生发送数据
assign TX=WORKTX; //通过改变TX的值进入测试模式或者工作模式
///////////////////////////////////////////
//----------------//信号处理端--发-->DIU端的信号(时钟另传)///-------------------
///////////////////////////////////////////
Encode ECODE_TX0 ( //编码第0位,现做为帧同步传送
.GCLK_64M(GCLK_64M), .SEGMENT(SEGMENT), .TXSUB(16'h01),
.TX(WORKTX[0])
);
Encode ECODE_TX1 ( //编码第1位
.GCLK_64M(GCLK_64M), .SEGMENT(SEGMENT), .TXSUB(TXSUB1X),
.TX(WORKTX[1])
);
Encode ECODE_TX2 ( //编码第2位
.GCLK_64M(GCLK_64M), .SEGMENT(SEGMENT), .TXSUB(TXSUB2X),
.TX(WORKTX[2])
);
Encode ECODE_TX3 ( //编码第3位
.GCLK_64M(GCLK_64M), .SEGMENT(SEGMENT), .TXSUB(TXSUB3X),
.TX(WORKTX[3])
);
Encode ECODE_TX4 ( //编码第4位
.GCLK_64M(GCLK_64M), .SEGMENT(SEGMENT), .TXSUB(TXSUB4X),
.TX(WORKTX[4])
);
Encode ECODE_TX5 ( //编码第5位
.GCLK_64M(GCLK_64M), .SEGMENT(SEGMENT), .TXSUB(TXSUB5X),
.TX(WORKTX[5])
);
Encode ECODE_TX6 ( //编码第6位
.GCLK_64M(GCLK_64M), .SEGMENT(SEGMENT), .TXSUB(TXSUB6X),
.TX(WORKTX[6])
);
Encode ECODE_TX7 ( //编码第7位
.GCLK_64M(GCLK_64M), .SEGMENT(SEGMENT), .TXSUB(TXSUB7X),
.TX(WORKTX[7])
);
Encode ECODE_TX8 ( //编码第8位
.GCLK_64M(GCLK_64M), .SEGMENT(SEGMENT), .TXSUB(TXSUB8X),
.TX(WORKTX[8])
);
Encode ECODE_TX9 ( //编码第9位
.GCLK_64M(GCLK_64M), .SEGMENT(SEGMENT), .TXSUB(TXSUB9X),
.TX(WORKTX[9])
);
Encode ECODE_TX10 ( //编码第10位
.GCLK_64M(GCLK_64M), .SEGMENT(SEGMENT), .TXSUB(TXSUBAX),
.TX(WORKTX[10])
);
Encode ECODE_TX11 ( //编码第11位
.GCLK_64M(GCLK_64M), .SEGMENT(SEGMENT), .TXSUB(TXSUBBX),
.TX(WORKTX[11])
);
Encode ECODE_TX12 ( //编码第12位
.GCLK_64M(GCLK_64M), .SEGMENT(SEGMENT), .TXSUB(TXSUBCX),
.TX(WORKTX[12])
);
Encode ECODE_TX13 ( //编码第13位
.GCLK_64M(GCLK_64M), .SEGMENT(SEGMENT), .TXSUB(TXSUBDX),
.TX(WORKTX[13])
);
Encode ECODE_TX14 ( //编码第14位
.GCLK_64M(GCLK_64M), .SEGMENT(SEGMENT), .TXSUB(TXSUBEX),
.TX(WORKTX[14])
);
Encode ECODE_TX15 ( //编码第15位
.GCLK_64M(GCLK_64M), .SEGMENT(SEGMENT), .TXSUB(TXSUBFX),
.TX(WORKTX[15])
);
assign FRMTRIG=RX[0];
///////////////////////////////////////
//--------------------/////DIU端--发-->信号处理端的信号//////-------------------
///////////////////////////////////////
Decode DECODE_RX1( //解码第1位
.RCLK(RGCLK), .RX(RX[1]), .FRMTRIG(FRMTRIG), .RXSUB(RXSUB1X), .SDTTL(SDTTL)
);
Decode DECODE_RX2( //解码第2位
.RCLK(RGCLK), .RX(RX[2]), .FRMTRIG(FRMTRIG), .RXSUB(RXSUB2X), .SDTTL(SDTTL)
);
Decode DECODE_RX3( //解码第3位
.RCLK(RGCLK), .RX(RX[3]), .FRMTRIG(FRMTRIG), .RXSUB(RXSUB3X), .SDTTL(SDTTL)
);
Decode DECODE_RX4( //解码第4位
.RCLK(RGCLK), .RX(RX[4]), .FRMTRIG(FRMTRIG), .RXSUB(RXSUB4X), .SDTTL(SDTTL)
);
Decode DECODE_RX5( //解码第5位
.RCLK(RGCLK), .RX(RX[5]), .FRMTRIG(FRMTRIG), .RXSUB(RXSUB5X), .SDTTL(SDTTL)
);
Decode DECODE_RX6( //解码第6位
.RCLK(RGCLK), .RX(RX[6]), .FRMTRIG(FRMTRIG), .RXSUB(RXSUB6X), .SDTTL(SDTTL)
);
Decode DECODE_RX7( //解码第7位
.RCLK(RGCLK), .RX(RX[7]), .FRMTRIG(FRMTRIG), .RXSUB(RXSUB7X), .SDTTL(SDTTL)
);
Decode DECODE_RX8( //解码第8位
.RCLK(RGCLK), .RX(RX[8]), .FRMTRIG(FRMTRIG), .RXSUB(RXSUB8X), .SDTTL(SDTTL)
);
Decode DECODE_RX9( //解码第9位
.RCLK(RGCLK), .RX(RX[9]), .FRMTRIG(FRMTRIG), .RXSUB(RXSUB9X), .SDTTL(SDTTL)
);
Decode DECODE_RX10( //解码第10位
.RCLK(RGCLK), .RX(RX[10]), .FRMTRIG(FRMTRIG), .RXSUB(RXSUBAX), .SDTTL(SDTTL)
);
Decode DECODE_RX11( //解码第11位
.RCLK(RGCLK), .RX(RX[11]), .FRMTRIG(FRMTRIG), .RXSUB(RXSUBBX), .SDTTL(SDTTL)
);
Decode DECODE_RX12( //解码第12位
.RCLK(RGCLK), .RX(RX[12]), .FRMTRIG(FRMTRIG), .RXSUB(RXSUBCX), .SDTTL(SDTTL)
);
Decode DECODE_RX13( //解码第13位
.RCLK(RGCLK), .RX(RX[13]), .FRMTRIG(FRMTRIG), .RXSUB(RXSUBDX), .SDTTL(SDTTL)
);
Decode DECODE_RX14( //解码第14位
.RCLK(RGCLK), .RX(RX[14]), .FRMTRIG(FRMTRIG), .RXSUB(RXSUBEX), .SDTTL(SDTTL)
);
Decode DECODE_RX15( //解码第15位
.RCLK(RGCLK), .RX(RX[15]), .FRMTRIG(FRMTRIG), .RXSUB(RXSUBFX), .SDTTL(SDTTL)
);
endmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -