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

📄 fpgab_top.v

📁 采用匹配滤波
💻 V
字号:
`timescale 1ns / 1ps

module fpgab_top(clk, clk10, clk_out, reset_in,/*clk_data,clk_code,clk_fs,*/DA1_D,DA2_D,RST_DAC,DAC_SCLK,DAC_SDENB,
                  DAC_SDIO,DAC_SDO,DA_PLLLOCK,DAV1_B,DAV2_B, ADA_D,CLK_ADA,AUX_CLK,
						CTRL_CLK,CTRL_BUS,IRQ_EN,IRQ_F2,F2_422_RX,F2_422_TX,F2_TTL_RX,
						F2_TTL_TX,F2F,F2_BEEP,F2_LED,F2_SW,TEST_D);
    input clk;				 //系统钟CLK_F2
    input clk10;			 //倍频前的基准时钟10M输入CLK_IN_F2
    output clk_out;		 //使用FPGA内DCM做倍频器时,结果由此输出CLK_OUT_F2
    input reset_in;		 //外部输入RESET信号,低有效

	 output [15:0] DA1_D;   //da通道1输入数据,在DAC_CLK上升沿处被读入 
    output [15:0] DA2_D;   //da通道2输入数据,在DAC_CLK上升沿处被读入
    output RST_DAC;        //D/A的复位信号,低有效 
    output DAC_SCLK;       //D/A的串行控制接口时钟信号 
    output DAC_SDENB;      //D/A的串行控制接口使能信号 
    inout DAC_SDIO;        //D/A的串行控制接口数据信号
    input DAC_SDO;         //D/A的串行控制接口输入数据,4线模式时有用
    input DA_PLLLOCK;      //D/A芯片内部PLL锁定信号
    output [5:0] DAV1_B;         //1通道衰减器控制码(0~63),静态电平控制
    output [5:0] DAV2_B;         //2通道衰减器控制码(0~63),静态电平控制 
    output [7:0] ADA_D;          //码钟生成电路的D/A芯片数据线 
    output CLK_ADA;  //码钟生成电路的D/A芯片时钟线
    input [2:0] AUX_CLK;   //码钟生成电路的时钟信号输入,具体选择参见文档HXI-1 UG pt.doc  
    input CTRL_CLK;        //控制总线时钟40M
    inout [35:0] CTRL_BUS; //控制总线,具体管脚对应见文档HXI-1 UG pt.doc    
    input IRQ_EN;          //中断使能信号,高有效
    output IRQ_F2;         //中断信号,下降沿触发中断 
    input [7:0] F2_422_RX;       //数字I/O的8对422输入信号
    output [7:0] F2_422_TX;      //数字I/O的8对422输出信号
    input [3:0] F2_TTL_RX;       //数字I/O的4条TTL输入信号
    output [3:0] F2_TTL_TX;      //数字I/O的4条TTL输出信号
    inout [89:0] F2F;            //FPGA1与FPGA2间的90条直联信号,使用时防止方向冲突
    output F2_BEEP;         //蜂鸣器,高有效
    output [5:0] F2_LED;    //LED,高有效,0~3位于后面板,4、5在FPGA旁边
    input [3:0] F2_SW;      //拨码开关,输入1对应其状态NO
    output [7:0] TEST_D;    //逻辑分析仪接口的D[0:7]——文档不对

	 
	 //input clk_data,clk_code,clk_fs;
	 
	 
	 
	 wire reset;			 //内部复位信号,低有效
	 assign reset = !reset_in;

	 

     wire [30:0] E_data,E_code,E_fs;
	  wire [25:0] F_data,F_code,F_fs;
	  wire [25:0] G_data,G_code,G_fs;
	  wire [30:0] fre_data,fre_code,fre_fs;

	 //控制总线读写寄存器,现对应读写寄存器均为32个
	 /*已有功能——1. 初始化DAC工作在X4L模式,相关管脚RST_DAC,DAC_SCLK,DAC_SDENB,DAC_SDIO
	               2. DAC寄存器读写,相关管脚RST_DAC,DAC_SCLK,DAC_SDENB,DAC_SDIO
	 */
	 wire [30:0]add_cy_31_bit;
	 wire [15:0]clk_numb;
	 wire [1:0]biaoshi;
	 wire [3:0]modulate;
	 wire reset_m;

	wire clk165,LOCKED_OUT_165;
	dcm165m d165(clk,reset,clk165,LOCKED_OUT_165);
	reg [15:0]numb_5;
	reg clk15m5;
	always @(posedge clk165 or posedge reset)
		begin
			if (reset)
				begin
					numb_5<=16'b0;
					clk15m5<=1'b0;
				end
			else
				begin
					if(numb_5>=clk_numb)
						numb_5<=16'd0;
					else
						numb_5<=numb_5+1'b1;
					
					if(numb_5<{1'b0,clk_numb[15:1]})
						clk15m5<=1'b0;
					else
						clk15m5<=1'b1;
				end
		end
	wire datain,datain_chi_370,datain_chi_430,datain_chi_470;
	wire qufan;
	wire up150k;	
	assign qufan=biaoshi[0];
	assign up150k=biaoshi[1];
	parameter Uncode=2'b00;
	parameter Code12=2'b01;
	parameter Code34=2'b10;

	wire code_clk,code_out;
 

	wire out_pn;
	pn_code_1023 pc0_1(	.clk(clk15m5),
								.reset(reset),
								.numb(4'b0000),
								.phase(2'b00),
								.pn(out_pn));






	 pn_catch_83_test pc83(clk,reset);












	//encode_BPSK eb34(clk15m5,datain,reset,clk,code_clk34,code_out34,Code34,add_cy_31_bit,qufan,overflow34);
		            //数据时钟,数据,    110M,码钟,   编码输出,码率,   积分步长	 ,是否取反
	wire  code_clk_core;
	wire [1:0]code_out_core;

//	wire decodeout,dclk,syn_zhishi;
 	wire syn_zhi,vtb_syn_12;
	wire [15:0]ceshi_vtb12B;
	 /////////////////////////////////////////////////////
	 ////////////////////////////////////////////////////

	reg [7:0]output_shiboqi;
	always @*
		begin
			case(modulate)
				4'b0000:begin
								output_shiboqi[0]=vtb_syn_12;//ceshi_vtb12B[7];
								output_shiboqi[1]=vtb_syn_34;//~code_out_core[1];
								output_shiboqi[2]=data_clk_vtb34;//ceshi_vtb12B[6];
								output_shiboqi[3]=data_clk_vtb;//~code_out_core[0];
								output_shiboqi[4]=datain_chi_370;
								output_shiboqi[5]=datain_chi_430;
								output_shiboqi[6]=data0_vtb;
								output_shiboqi[7]=data0_vtb34;
							end
//				4'b0001:begin
//								output_shiboqi   = ceshi_vtb12B[7:0];
//								output_shiboqi[0]=clk15m5;
//								output_shiboqi[1]=datain_chi_370;
//								output_shiboqi[2]=data_clk_vtb34;
//								output_shiboqi[3]=data0_vtb34;
//							end
//				4'b0010:begin
//								output_shiboqi   = ceshi_vtb12B[15:8];
//								output_shiboqi[0]=clk15m5;
//								output_shiboqi[1]=datain_chi_430;
//								output_shiboqi[2]=data_clk_vtb_Q_12_s;
//								output_shiboqi[3]=data0_Q12s;
//							end
//				4'b0011:begin
//								output_shiboqi[0]=clk15m5;
//								output_shiboqi[1]=datain_chi_470;
//								output_shiboqi[2]=data_clk_vtb_Q_34_s;
//								output_shiboqi[3]=data0_Q34s;
//							end
			endcase
		end	 

	assign F2_TTL_TX =	output_shiboqi[7:4];
//	 assign F2_TTL_TX[0] = ~datain_chi_370;//dout_fs;//outen_il;
//	 assign F2_TTL_TX[1] = data0_vtb34;//outen_fs;
//	 assign F2_TTL_TX[2]=data0_vtb;//0;//dout_il;
//	 assign F2_TTL_TX[3]=data_clk_vtb;//syn_zhishi;//dout_fs;

	 assign TEST_D[7:0]= output_shiboqi[7:0];//clk_data;	  //码钟
//	 assign TEST_D[1] = 0;//clk_code;		  //数据源数据
//	 assign TEST_D[2] = 0;//clk_fs;		  //交织后数据
//	 assign TEST_D[3] = 0;//outen_il;
//	 assign TEST_D[4] = 0;//dout_il;
//	 assign TEST_D[5] = 0;//outen_fs;
//	 assign TEST_D[6] = 0;//dout_fs;	 //加帧头后数据
//	 assign TEST_D[7] = 0;


endmodule

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -