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

📄 top.v

📁 FPGA verilog
💻 V
📖 第 1 页 / 共 2 页
字号:
    			2'b00: begin
							McuOutputReg <= McuReadReg[31:24];
							OutputDataReg <= McuReadReg[23:0];
					   end
    			2'b01: McuOutputReg <= OutputDataReg[23:16];
		    	2'b10: McuOutputReg <= OutputDataReg[15:8];
				2'b11: McuOutputReg <= OutputDataReg[7:0];
  			endcase
		end
	end

	always @(posedge SYS_CLK)
	begin
		WRSamp <= WR;
		WRSignal <= WRSamp;
	end

	always @(posedge SYS_CLK)
	begin
		if (WRSignal&&(!WRSamp))
		begin
		 	case (AddrBus[1:0]) // synthesis full_case
		   		2'b00: McuWriteReg[23:16] <= DataBus;
		   		2'b01: McuWriteReg[15:8] <= DataBus;
			    2'b10: McuWriteReg[7:0] <= DataBus;
				2'b11: begin
							if (AddrBus[15]==0)
							begin
								case (AddrBus[14:2])
									OFG:				OFG_Set <= MCUFullData;
									PLIM:				PLIM_Set <= MCUFullData;
									GLIM:				GLIM_Set <= MCUFullData;
									OP_MODE:			OP_MODE_Set <= MCUFullData[1:0];
									GAIN_SET:			GAIN_SET_Set <=MCUFullData;
									PWR_SET:			PWR_SET_Set <= MCUFullData;
									VOA_SET:			VOA_SET_Set <= MCUFullData;
									CURR_SET1:			CURR_SET_Set <= MCUFullData[11:0];
									
									ASTM:				ASTM_Set <= MCUFullData[0]; 
									
									EYESAFE_PWR:		EYESAFE_PWR_Set <= MCUFullData;
									RAMP_TIME:			RAMP_TIME_Set <= MCUFullData;
									RAMP_STEPS:			RAMP_STEPS_Set <= MCUFullData[9:0];		
									LOSMODE:			LOSMODE_Set <= MCUFullData[1:0];
									DEBOUNCE_TIME:		DEBOUNCE_TIME_Set <= MCUFullData;
									AUTO_MUTE:			AUTO_MUTE_Set <= MCUFullData[0];
									LOS_THR:			LOS_THR_Set <= MCUFullData;
									MTH_THR:			MTH_THR_Set <= MCUFullData;
									MTL_THR:			MTL_THR_Set <= MCUFullData;
									TMP_THR:			TMP_THR_Set <= MCUFullData;
									ILD1_THR:			ILD_THR_Set <= MCUFullData;
									CT_THR:				CT_THR_Set <= MCUFullData;
									RFL_THR:			RFL_THR_Set <= MCUFullData;
									LOS_HYS:			LOS_HYS_Set <= MCUFullData;
									MTH_HYS:			MTH_HYS_Set <= MCUFullData;
									MTL_HYS:			MTL_HYS_Set <= MCUFullData;
									TMP_HYS:			TMP_HYS_Set <= MCUFullData;
									ILD1_HYS:			ILD_HYS_Set <= MCUFullData;
									CT_HYS:				CT_HYS_Set <= MCUFullData;
									RFL_HYS:			RFL_HYS_Set <= MCUFullData;

									PIN_K:				PIN_K_Set <= MCUFullData;
									PIN_B:				PIN_B_Set <= MCUFullData;
									POUT_K:				POUT_K_Set <= MCUFullData;
									POUT_B:				POUT_B_Set <= MCUFullData;
									VOA_INPUT_K:		VOA_INPUT_K_Set <= MCUFullData;
									VOA_INPUT_B:		VOA_INPUT_B_Set <= MCUFullData;
									VOA_OUTPUT_K:		VOA_OUTPUT_K_Set <= MCUFullData;
									VOA_OUTPUT_B:		VOA_OUTPUT_B_Set <= MCUFullData;
									RFL_K:				RFL_K_Set <= MCUFullData;
									RFL_B:				RFL_B_Set <= MCUFullData;
									VOA_KP:				VOA_KP_Set <= MCUFullData;
									VOA_KI:				VOA_KI_Set <= MCUFullData;
									AGC_KP:				AGC_KP_Set <= MCUFullData;
									AGC_KI:				AGC_KI_Set <= MCUFullData;
									APC_KP:				APC_KP_Set <= MCUFullData;
									APC_KI:				APC_KI_Set <= MCUFullData;
									
									INPUTSAMPSTART:		INPUTSAMPSTART_Set <= MCUFullData[AD_WIDTH-2:0];
									OUTPUTSAMPSTART:	OUTPUTSAMPSTART_Set <= MCUFullData[AD_WIDTH-2:0];
									GAIN_A:				GAIN_A_Set <= MCUFullData;
									GAIN_B:				GAIN_B_Set <= MCUFullData;
									FEED_K:				FEED_K_Set <= MCUFullData;	
									FEED_B:				FEED_B_Set <= MCUFullData;
									VOA_TARGET:			VOA_TARGET_Set <= MCUFullData;
								
									LOP_THR_HI:			LOP_THR_HI_Set <= MCUFullData;
									LOP_THR_LO:			LOP_THR_LO_Set <= MCUFullData;
									LOP_HYS_HI:			LOP_HYS_HI_Set <= MCUFullData;
									LOP_HYS_LO:			LOP_HYS_LO_Set <= MCUFullData;
									SYS_CTRL:			SYS_CTRL_Set <= MCUFullData[7:0];
									
									VOA_DAC	:			VOA_DAC_Reg<=MCUFullData[11:0];
									MUTEON:				MUTEON_Set <= MCUFullData[0];
									PUMPON:				PUMPON_Set <= MCUFullData[0];
									
									MT_AD:				MT_Reg <= MCUFullData;
									PUMP1_ILD_AD:		PUMP_ILD_Reg <= MCUFullData;
									PUMP1_TMP_AD:		PUMP_TMP_Reg <= MCUFullData;
									CT_AD:				CT_Reg <= MCUFullData;
									//RFL_AD:				REFLECT_Reg <= MCUFullData;
									ISP_AUTO1:			ISP_AUTO_Set <= MCUFullData[0];
									INPUT_KEY:			INPUT_KEY_Set<= MCUFullData[1:0];
									CLEARALARM: begin
													MTHClear <= ~MTHClear;
													MTLClear <= ~MTLClear;
													TMPClear <= ~TMPClear;
													ILDClear <= ~ILDClear;
													LOSClear <= ~LOSClear;
													LOPClear <= ~LOPClear;
													ReflectionClear <= ~ReflectionClear;
													CTClear <= ~CTClear;
												end
									CLEARMTH:	MTHClear <= ~MTHClear;
									CLEARMTL:	MTLClear <= ~MTLClear;
									CLEARTMP:	TMPClear <= ~TMPClear;
									CLEARILD:	ILDClear <= ~ILDClear;
									CLEARLOS:	LOSClear <= ~LOSClear;
									CLEARDOP:	LOPClear <= ~LOPClear;
									CLEARRFL:	ReflectionClear <= ~ReflectionClear;
									CLEARCT:	CTClear <= ~CTClear;
									
								endcase
						   end
					  end
		  	endcase
		end
	end
	
	/***************** MCU Interface End *******************/
		
	always @(posedge SYS_CLK)
	begin
		if (WR)
		begin
			if (Module_Temperature_High_Alarm)
				Module_Temperature_High_Alarm_SST <= 1'b1;
			else if (MTHClearReg!=MTHClear)
			begin
				Module_Temperature_High_Alarm_SST <= 1'b0;
				MTHClearReg<=MTHClear;
			end
			
			if (Module_Temperature_Low_Alarm)
				Module_Temperature_Low_Alarm_SST <= 1'b1;
			else if (MTLClearReg!=MTLClear)
			begin
				Module_Temperature_Low_Alarm_SST <= 1'b0;
				MTLClearReg<=MTLClear;
			end
			
			if (Pump_Current_Alarm)
				Pump_Current_Alarm_SST <= 1'b1;
			else if (ILDClearReg!=ILDClear)
			begin
				Pump_Current_Alarm_SST <= 1'b0;
				ILDClearReg<=ILDClear;
			end
			
			if (Pump_Temperature_Alarm)
				Pump_Temperature_Alarm_SST <= 1'b1;
			else if (TMPClearReg!=TMPClear)
			begin
				Pump_Temperature_Alarm_SST <= 1'b0;
				TMPClearReg<=TMPClear;
			end
			
			if (Input_LOS_Alarm)
				Input_LOS_Alarm_SST <= 1'b1;
			else if (LOSClearReg!=LOSClear)
			begin
				Input_LOS_Alarm_SST <= 1'b0;
				LOSClearReg<=LOSClear;
			end
			
			if (Output_LOP_Alarm)
				Output_LOP_Alarm_SST <= 1'b1;
			else if (LOPClearReg!=LOPClear)
			begin
				Output_LOP_Alarm_SST <= 1'b0;
				LOPClearReg<=LOPClear;
			end

			if (Reflection_Alarm)
				Reflection_Alarm_SST <= 1'b1;
			else if (ReflectionClearReg!=ReflectionClear)
			begin
				Reflection_Alarm_SST <= 1'b0;
				ReflectionClearReg<=ReflectionClear;
			end

			if (CT_Low_Alarm)
				CT_Low_Alarm_SST <= 1'b1;
			else if (CTClearReg!=CTClear)
			begin
				CT_Low_Alarm_SST <= 1'b0;
				CTClearReg<=CTClear;
			end
		end
	end
	
		ADC  adc(
				.CLK(SYS_CLK),
				.PIN_K_Set(PIN_K_Set),
				.PIN_B_Set(PIN_B_Set),
				.POUT_K_Set(POUT_K_Set),
				.POUT_B_Set(POUT_B_Set),
				.VOA_INPUT_K_Set(VOA_INPUT_K_Set),
				.VOA_INPUT_B_Set(VOA_INPUT_B_Set),
				.VOA_OUTPUT_K_Set(VOA_OUTPUT_K_Set),
				.VOA_OUTPUT_B_Set(VOA_OUTPUT_B_Set),
				.RFL_K_Set(RFL_K_Set),
				.RFL_B_Set(RFL_B_Set),
				.InputPwrAD(InputPwrAD_Signal),
				.OutputPwrAD(OutputPwrAD_Signal),
				.VOAInputAD(VOAInputAD_Signal),
				.VOAOutputAD(VOAOutputAD_Signal),
				.RFLAD(RFLAD_Signal),
				.InputPwr(InputPwr),
				.OutputPwr(OutputPwr),
				.VOAInputPwr(VOAInputPwr),
				.VOAOutputPwr(VOAOutputPwr),
				.RFLPwr(RFLPwr),
				.VOAAtt(VOAAtt)
		);
			
		SyncRead SyncParamModule(
				.RD(RD),
				.CLK(SYS_CLK),
				.InputPwrIn(InputPwr),
				.OutputPwrIn(OutputPwr),
				.VOAInputPwrIn(VOAInputPwr),
				.VOAOutputPwrIn(VOAOutputPwr),
				.RFLPwrIn(RFLPwr),
				.VOAAttIn(VOAAtt),
				.GainIn(Gain_Disp),
				.POutsigIn(POutsig_Disp),
				.InputPwrADIn(InputPwrAD_Signal),
				.OutputPwrADIn(OutputPwrAD_Signal),
				.VOAInputADIn(VOAInputAD_Signal),
				.VOAOutputADIn(VOAOutputAD_Signal),
				.RFLADIn(RFLAD_Signal),
				.PumpDacIn(Pump_DacData),				
				.HrsIn(Hrs),
				.IldmIn(Ildm),

				.InputPwrOut(PIN_Reg),
				.OutputPwrOut(POUT_Reg),
				.VOAInputPwrOut(VOA_INPUT_Reg),
				.VOAOutputPwrOut(VOA_OUTPUT_Reg),
				.RFLPwrOut(RFL_Reg),
				.VOAAttOut(VOA_Reg),
				.GainOut(GAIN_Reg),
				.POutsigOut(POUTSIG_Reg),
				.InputPwrADOut(PIN_AD_Reg),
				.OutputPwrADOut(POUT_AD_Reg),
				.VOAInputADOut(VOA_INPUT_AD_Reg),
				.VOAOutputADOut(VOA_OUTPUT_AD_Reg),
				.RFLADOut(RFL_AD_Reg),
				.PumpDacOut(PumpDac_Reg),				
				.HrsOut(Hrs_Reg),
				.IldmOut(Ildm_Reg)
				);
								
	VOACtrl		VOAModule(.CLK(SYS_CLK),
						.EN(SYS_RUN),
						.Ramp(Ramp),
						.OpMode(OpMode),
						.VOA_SET_Set(VOA_SET_Set),
						.VOAAtt(VOAAtt),
						.VOATarget(VOA_TARGET_Set),
						.VOA_KP_Set(VOA_KP_Set),
						.VOA_KI_Set(VOA_KI_Set), 
						.VOA_DacData(VOA_DacData));
						
	AGCCtrl	agcCtrl(
				.EN(SYS_RUN), 
				.CLK(SYS_CLK), 
				.WR(WR),
				.SetGain(SYS_CTRL_Set[2]),
				.Feed_K_Set(FEED_K_Set),
				.Feed_B_Set(FEED_B_Set),
				.AddrBus(AddrBus), 
				.DataBus(MCUFullData), 
				.InputPwrAD(InputPwrAD_Signal), 
				.OutputPwrAD(OutputPwrAD_Signal),
				.Input_Samp_Start(INPUTSAMPSTART_Set),
				.Output_Samp_Start(OUTPUTSAMPSTART_Set),
				.A(GAIN_A_Set),
				.B(GAIN_B_Set),
				.Gain(Gain),
				.InputPwrAsmW(InputPwrAsmW),
				.OutputPwrAsmW(OutputPwrAsmW),
				.POutsig(POutsig), 
				.Gain_Disp(Gain_Disp),
				.POutsig_Disp(POutsig_Disp), 
				.FeedForwardData(FeedForwardData));

	ModeCtrl ModeCtrlModule(
				.CLK(SYS_CLK),
				.EN(SYS_RUN),
				.OP_MODE_Set(OP_MODE_Set),
				.LOSMODE_Set(LOSMODE_Set),
				.AUTO_MUTE_Set(AUTO_MUTE_Set),
				.APC_KP_Set(APC_KP_Set),
				.APC_KI_Set(APC_KI_Set),
				.AGC_KP_Set(AGC_KP_Set),
				.AGC_KI_Set(AGC_KI_Set),
				.GLIM_Set(GLIM_Set),
				.PLIM_Set(PLIM_Set),
				.CURR_SET_Set(CURR_SET_Set),
				.ISP_AUTO_Set(ISP_AUTO_Set),
				.TARGET_GAIN_Set(GAIN_SET_Set),
				.TARGET_PWR_Set(PWR_SET_Set),
				.EYESAFE_PWR_Set(EYESAFE_PWR_Set),
				.MUTEON_Set(MUTEON_Set),
				.PUMPON_Set(PUMPON_Set),
				.OutputPwrAsmW(OutputPwrAsmW),
				.Input_LOS_Alarm(Input_LOS_Alarm),
				.Reflection_Alarm(Reflection_Alarm),
				.Amplifier_Disable_Input(Amplifier_Disable_Input),
				.Output_Mute_Input(Output_Mute_Input),
				.Pump_Protect_Alarm(Pump_Protect_Alarm),
				.Gain(Gain),
				.Ramp(Ramp),
				.Mst(Mst),
				.PumpDown(PumpDown),
				.RampStart(RampStart),
				.POutsig(POutsig),
				.FeedForwardData(FeedForwardData),
				.OpModeOut(OpMode),
				.OutputLim(OutputLim),
				.Pump_DacData(Pump_DacData));


	ADCAlarmMonitor adcAlarmMonitor(
				.EN(AlarmEN),
				.CLK(SYS_CLK),
				.InputPwr(InputPwr), 
				.POutsig(POutsig_Disp),
				.Gain(Gain_Disp),
				.OpMode(OP_MODE_Set),
				.LOS_THR_Set(LOS_THR_Set),
				.LOS_HYS_Set(LOS_HYS_Set),
				.LOP_THR_HI_Set(LOP_THR_HI_Set),
				.LOP_THR_LO_Set(LOP_THR_LO_Set),
				.LOP_HYS_HI_Set(LOP_HYS_HI_Set),
				.LOP_HYS_LO_Set(LOP_HYS_LO_Set),
				.Debounce_Time_Set(DEBOUNCE_TIME_Set),
				.Input_LOS_Alarm_Output(Input_LOS_Alarm),
				.Output_LOP_Alarm_Output(Output_LOP_Alarm)
				);
				
	MCUAlarmMonitor	mcuAlarmMonitor(
				.EN(AlarmEN),
				.Ramp(Ramp),
				.PumpDown(PumpDownSignal),
				.SYS_CLK(SYS_CLK),
				.PUMP_ILDReg(PUMP_ILD_Reg),
				.PUMP_TMPReg(PUMP_TMP_Reg),
				.MTReg(MT_Reg),
				.CTReg(CT_Reg),
				.REFLECTReg(RFLPwr),
				.OutputPwr(OutputPwr),
				.Debounce_Time_Set(DEBOUNCE_TIME_Set),
				.ILD_THR_Set(ILD_THR_Set),
				.ILD_HYS_Set(ILD_HYS_Set),
				.TMP_THR_Set(TMP_THR_Set),
				.TMP_HYS_Set(TMP_HYS_Set),
				.MTH_THR_Set(MTH_THR_Set),
				.MTH_HYS_Set(MTH_HYS_Set),
				.MTL_THR_Set(MTL_THR_Set),
				.MTL_HYS_Set(MTL_HYS_Set),
				.CT_THR_Set(CT_THR_Set),
				.CT_HYS_Set(CT_HYS_Set),
				.REFLECT_THR_Set(RFL_THR_Set),
				.REFLECT_HYS_Set(RFL_HYS_Set),	
				.Pump_Current_Alarm_Output(Pump_Current_Alarm),
				.Pump_Temperature_Alarm_Output(Pump_Temperature_Alarm),
				.Reflection_Alarm_Output(Reflection_Alarm),
				.Module_Temperature_High_Alarm_Output(Module_Temperature_High_Alarm),
				.Module_Temperature_Low_Alarm_Output(Module_Temperature_Low_Alarm),
				.Coil_Temperature_Alarm_Output(CT_Low_Alarm),
				.MT_Protect_Alarm(MT_Protect_Alarm)
				);
/*
	RAMP RampModule(.EN(SYS_RUN),
			.SYS_CLK(SYS_CLK),
			.RampStart(RampStart),
			.OpMode(OpMode),
//			.ISP_AUTO_Set(ISP_AUTO_Set),
			.EYESAFE_PWR_Set(EYESAFE_PWR_Set),
			.GAIN_SET_Set(GAIN_SET_Set),
			.PWR_SET_Set(PWR_SET_Set),
			.RAMP_TIME_Set(RAMP_TIME_Set),
			.CURR_SET_Set(CURR_SET_Set),
			.OutputPwrAsmW(OutputPwrAsmW),
			.Gain(Gain),
			.OutputLim(OutputLim),
			.POutsig(POutsig),
			.Pump_DacData(Pump_DacData), 
			.VOA_DacData(VOA_DacData), 
			.Pump_DacOut(Pump_DacSignal), 
			//.VOA_DacOut(VOA_DacSignal),
			.RampOut(Ramp));
*/
	Pump	PumpModule(.CLK(SYS_CLK),
					.PumpDown(PumpDownSignal),
					.Ild(PUMP_ILD_Reg),
					.Hrs(Hrs),
					.Ildm(Ildm));

	DAC     dac(
			.DAC_CLK(PUMP_DAC_CLK),
			.VOA_CLK(VOA_DAC_CLK),
			.Pump_DacData(Pump_DacData), 
			.VOA_DacData(VOA_DacData), 
			.Pump_DacOut(Pump_DacOut), 
			.VOA_DacOut(VOA_DacOut));
endmodule

⌨️ 快捷键说明

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