⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fbr_tr16.v

📁 十六位编解码器
💻 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 + -