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

📄 hostmot2.vhd

📁 CNC 的开放码,EMC2 V2.2.8版
💻 VHD
📖 第 1 页 / 共 4 页
字号:
		if A(15 downto 8) = OpenDrainModeAddr then	 --  OpenDrain  register select			OpendrainModeSel <= '1';		else			OpenDrainModeSel <= '0';		end if;		if A(15 downto 8) = OutputInvAddr then	 --  IO invert register select			OutputInvSel <= '1';		else			OutputInvSel <= '0';		end if;		if A(15 downto 8) = StepGenRateAddr then	 --  stepgen rate register select			StepGenRateSel <= '1';		else			StepGenRateSel <= '0';		end if;		if A(15 downto 8) = StepGenAccumAddr then	 --  stepgen Accumumlator low select			StepGenAccumSel <= '1';		else			StepGenAccumSel <= '0';		end if;		if A(15 downto 8) = StepGenModeAddr then	 --  stepgen mode register select			StepGenModeSel <= '1';		else			StepGenModeSel <= '0';		end if;		if A(15 downto 8) = StepGenDSUTimeAddr then	 --  stepgen Dir setup time register select			StepGenDSUTimeSel <= '1';		else			StepGenDSUTimeSel <= '0';		end if;		if A(15 downto 8) =StepGenDHLDTimeAddr then	 --  stepgen Dir hold time register select			StepGenDHLDTimeSel <= '1';		else			StepGenDHLDTimeSel <= '0';		end if;		if A(15 downto 8) = StepGenPulseATimeAddr then	 --  stepgen pulse width register select			StepGenPulseATimeSel <= '1';		else			StepGenPulseATimeSel <= '0';		end if;		if A(15 downto 8) = StepGenPulseITimeAddr then	 --  stepgen pulse width register select			StepGenPulseITimeSel <= '1';		else			StepGenPulseITimeSel <= '0';		end if;		if A(15 downto 8) = StepGenTableAddr then	 --  stepgen pulse width register select			StepGenTableSel <= '1';		else			StepGenTableSel <= '0';		end if;			if A(15 downto 8) = StepGenTableMaxAddr then	 --  stepgen pulse width register select			StepGenTableMaxSel <= '1';		else			StepGenTableMaxSel <= '0';		end if;		if A(15 downto 8) = QCounterAddr then	 --  QCounter select			QCounterSel <= '1';		else			QCounterSel <= '0';		end if;		if A(15 downto 8) = QCounterCCRAddr then	 --  QCounter CCR register select			QCounterCCRSel <= '1';		else			QCounterCCRSel <= '0';		end if;		if A(15 downto 8) = PWMValAddr then	 --  PWMVal select			PWMValSel <= '1';		else			PWMValSel <= '0';		end if;		if A(15 downto 8) = PWMCRAddr then	 --  PWM mode register select			PWMCRSel <= '1';		else			PWMCRSel <= '0';		end if;		if A(15 downto 8) = SPIDataAddr then	 --  SPI data register select			SPIDataSel <= '1';		else			SPIDataSel <= '0';		end if;				if A(15 downto 8) = SPIBitCountAddr then	 --  SPI bit count register select			SPIBitCountSel <= '1';		else			SPIBitCountSel <= '0';		end if;		if A(15 downto 8) = SPIBitrateAddr then	 --  SPI bit rate register select			SPIBitrateSel <= '1';		else			SPIBitrateSel <= '0';		end if;		if A(15 downto 8) = UARTXDataAddr then	 --  UART TX data register select			UARTXDataSel <= '1';		else			UARTXDataSel <= '0';		end if;		if A(15 downto 8) = UARTXFIFOCountAddr then	 --  UART TX FIFO count register select			UARTXFIFOCountSel <= '1';		else			UARTXFIFOCountSel <= '0';		end if;		if A(15 downto 8) = UARTXBitrateAddr then	 --  UART TX bit rate register select			UARTXBitrateSel <= '1';		else			UARTXBitrateSel <= '0';		end if;		if A(15 downto 8) = UARTXModeRegAddr then	 --  UART TX bit mode register select			UARTXModeRegSel <= '1';		else			UARTXModeRegSel <= '0';		end if;		if A(15 downto 8) = UARTRDataAddr then	 --  UART RX data register select			UARTRDataSel <= '1';		else			UARTRDataSel <= '0';		end if;		if A(15 downto 8) = UARTRFIFOCountAddr then	 --  UART RX FIFO count register select			UARTRFIFOCountSel <= '1';		else			UARTRFIFOCountSel <= '0';		end if;		if A(15 downto 8) = UARTRBitrateAddr then	 --  UART RX bit rate register select			UARTRBitrateSel <= '1';		else			UARTRBitrateSel <= '0';		end if;		if A(15 downto 8) = UARTRModeAddr then	 --  UART RX status register select			UARTRModeSel <= '1';		else			UARTRModeSel <= '0';		end if;		if A(15 downto 8) = ReadIDAddr and Read = '1' then	 --  			ReadID <= '1';		else			ReadID <= '0';		end if;		if A(15 downto 8) = WatchdogTimeAddr and Read = '1' then	 --  			ReadWDTime <= '1';		else			ReadWDTime <= '0';		end if;		if A(15 downto 8) = WatchdogTimeAddr and Write = '1' then	 --  			LoadWDTime <= '1';		else			LoadWDTime <= '0';		end if;		if A(15 downto 8) = WatchdogStatusAddr and Read = '1' then	 --  			ReadWDStatus <= '1';		else			ReadWDStatus <= '0';		end if;		if A(15 downto 8) = WatchdogStatusAddr and Write = '1' then	 --  			LoadWDStatus <= '1';		else			LoadWDStatus <= '0';		end if;		if A(15 downto 8) = WatchdogCookieAddr and Write = '1' then	 --  			WDCookie <= '1';		else			WDCookie <= '0';		end if;		if A(15 downto 8) = IRQDivAddr and Write = '1' then	 --  			LoadIRQDiv <= '1';		else			LoadIRQDiv <= '0';		end if;		if A(15 downto 8) = IRQDivAddr and Read = '1' then	 --  			ReadIRQDiv <= '1';		else			ReadIRQDiv <= '0';		end if;		if A(15 downto 8) = IRQStatusAddr and Write = '1' then	 --  			LoadIRQStatus <= '1';		else			LoadIRQStatus <= '0';		end if;		if A(15 downto 8) = IRQStatusAddr and Read = '1' then	 --  			ReadIrqStatus <= '1';		else			ReadIrqStatus <= '0';		end if;		if A(15 downto 8) = ClearIRQAddr and Write = '1' then	 --  			ClearIRQ <= '1';		else			ClearIRQ <= '0';		end if; 				if A(15 downto 8) = StepGenBasicRateAddr and Write = '1' then	 --  			LoadStepGenBasicRate <= '1';		else			LoadStepGenBasicRate <= '0';		end if;		if A(15 downto 8) = StepGenBasicRateAddr and Read = '1' then	 --  			ReadStepGenBasicRate <= '1';		else			ReadStepGenBasicRate <= '0';		end if;		if A(15 downto 8) = TSDivAddr and Write = '1' then	 --  			LoadTSDiv <= '1';		else			LoadTSDiv <= '0';		end if;		if A(15 downto 8) = TSDivAddr and Read = '1' then	 --  			ReadTSDiv <= '1';		else			ReadTSDiv <= '0';		end if;		if A(15 downto 8) = TSAddr and Read = '1' then	 --  			ReadTS <= '1';		else			ReadTS <= '0';		end if;		if A(15 downto 8) = QCRateAddr and Write = '1' then	 --  			LoadQCountRate <= '1';		else			LoadQCountRate <= '0';		end if;		if A(15 downto 8) = PWMRateAddr and Write = '1' then	 --  			LoadPWMRate <= '1';		else			LoadPWMRate <= '0';		end if;		if A(15 downto 8) = PDMRateAddr and Write = '1' then	 --  			LoadPDMRate <= '1';		else			LoadPDMRate <= '0';		end if;		if A(15 downto 8) = PWMEnasAddr and Write = '1' then	 --  			LoadPWMEnas <= '1';		else			LoadPWMEnas <= '0';		end if;		if A(15 downto 8) = PWMEnasAddr and Read = '1' then	 --  			ReadPWMEnas <= '1';		else			ReadPWMEnas <= '0';		end if;		if A(15 downto 8) = IDROMWEnAddr and Write = '1' then	 --  			LoadIDROMWEn <= '1';		else			LoadIDROMWEn <= '0';		end if;		if A(15 downto 8) = IDROMWEnAddr and Read = '1' then	 --  			ReadIDROMWEn <= '1';		else			ReadIDROMWEn <= '0';		end if;		if A(15 downto 8) = LEDAddr and Write = '1' then	 --  			LoadLEDs <= '1';		else			LoadLEDs <= '0';		end if;	end process;		PortDecode: process (A,Read,Write,PortSel, DDRSel, AltDataSrcSel, OpenDrainModeSel, OutputInvSel)	begin		LoadPortCMD <= OneOfNDecode(IOPorts,PortSel,Write,A(3 downto 2));		ReadPortCMD <= OneOfNDecode(IOPorts,PortSel,Read,A(3 downto 2));		LoadDDRCMD <= OneOfNDecode(IOPorts,DDRSel,Write,A(3 downto 2));		ReadDDRCMD <= OneOfNDecode(IOPorts,DDRSel,Read,A(3 downto 2));		LoadAltDataSrcCMD <= OneOfNDecode(IOPorts,AltDataSrcSel,Write,A(3 downto 2));		LoadOpenDrainModeCMD <= OneOfNDecode(IOPorts,OpenDrainModeSel,Write,A(3 downto 2));		LoadOutputInvCMD <= OneOfNDecode(IOPorts,OutputInvSel,Write,A(3 downto 2));	end process PortDecode;		StepGenDecode: if (STEPGENs > 0) generate			StepGenDecodeProcess : process (A,Read,write,StepGenRateSel, StepGenAccumSel, StepGenModeSel,                                 			StepGenDSUTimeSel, StepGenDHLDTimeSel, StepGenPulseATimeSel, 			                                 StepGenPulseITimeSel, StepGenTableSel, StepGenTableMaxSel)			begin				LoadStepGenRate <= OneOfNDecode(STEPGENs,StepGenRateSel,Write,A(6 downto 2));				ReadStepGenRate <= OneOfNDecode(STEPGENs,StepGenRateSel,Read,A(6 downto 2));				LoadStepGenAccum <= OneOfNDecode(STEPGENs,StepGenAccumSel,Write,A(6 downto 2));				ReadStepGenAccum <= OneOfNDecode(STEPGENs,StepGenAccumSel,Read,A(6 downto 2));				LoadStepGenMode <= OneOfNDecode(STEPGENs,StepGenModeSel,Write,A(6 downto 2));			 				ReadStepGenMode <= OneOfNDecode(STEPGENs,StepGenModeSel,Read,A(6 downto 2));					LoadStepGenDSUTime <= OneOfNDecode(STEPGENs,StepGenDSUTimeSel,Write,A(6 downto 2));				ReadStepGenDSUTime <= OneOfNDecode(STEPGENs,StepGenDSUTimeSel,Read,A(6 downto 2));				LoadStepGenDHLDTime <= OneOfNDecode(STEPGENs,StepGenDHLDTimeSel,Write,A(6 downto 2));				ReadStepGenDHLDTime <= OneOfNDecode(STEPGENs,StepGenDHLDTimeSel,Read,A(6 downto 2));				LoadStepGenPulseATime <= OneOfNDecode(STEPGENs,StepGenPulseATimeSel,Write,A(6 downto 2));				ReadStepGenPulseATime <= OneOfNDecode(STEPGENs,StepGenPulseATimeSel,Read,A(6 downto 2));				LoadStepGenPulseITime <= OneOfNDecode(STEPGENs,StepGenPulseITimeSel,Write,A(6 downto 2));				ReadStepGenPulseITime <= OneOfNDecode(STEPGENs,StepGenPulseITimeSel,Read,A(6 downto 2));				LoadStepGenTable <= OneOfNDecode(STEPGENs,StepGenTableSel,Write,A(6 downto 2));				ReadStepGenTable <= OneOfNDecode(STEPGENs,StepGenTableSel,Read,A(6 downto 2));				LoadStepGenTableMax <= OneOfNDecode(STEPGENs,StepGenTableMaxSel,Write,A(6 downto 2));				ReadStepGenTableMax <= OneOfNDecode(STEPGENs,StepGenTableMaxSel,Read,A(6 downto 2));			end process StepGenDecodeProcess;		end generate;		QCounterDecode: if (QCOUNTERs > 0) generate					QCounterDecodeProcess : process (A,Read,write,QCounterSel, QCounterCCRSel)			begin				LoadQCounter <= OneOfNDecode(QCOUNTERs,QCounterSel,Write,A(6 downto 2));				ReadQCounter <= OneOfNDecode(QCOUNTERs,QCounterSel,Read,A(6 downto 2));				LoadQCounterCCR <= OneOfNDecode(QCOUNTERs,QCounterCCRSel,Write,A(6 downto 2));				ReadQCounterCCR <= OneOfNDecode(QCOUNTERs,QCounterCCRSel,Read,A(6 downto 2));			end process QCounterDecodeProcess;		end generate;		PWMDecode: if (PWMGENs > 0) generate					PWMDecodeProcess : process (A,Read,write,PWMValSel, PWMCRSel)			begin				LoadPWMVal <= OneOfNDecode(PWMGENs,PWMValSel,Write,A(6 downto 2));				LoadPWMCR <= OneOfNDecode(PWMGENs, PWMCRSel,Write,A(6 downto 2));			end process PWMDecodeProcess;		end generate;		SPIDecode: if (SPIs > 0) generate					SPIDecodeProcess : process (A,Read,write,SPIDataSel,SPIBitCountSel,SPIBitRateSel)			begin						LoadSPIData <= OneOfNDecode(SPIs,SPIDataSel,Write,A(5 downto 2));				ReadSPIData <= OneOfNDecode(SPIs,SPIDataSel,Read,A(5 downto 2));				LoadSPIBitCount <= OneOfNDecode(SPIs,SPIBitCountSel,Write,A(5 downto 2));				ReadSPIBitCount <= OneOfNDecode(SPIs,SPIBitCountSel,Read,A(5 downto 2));				LoadSPIBitRate <= OneOfNDecode(SPIs,SPIBitRateSel,Write,A(5 downto 2));				ReadSPIBitRate <= OneOfNDecode(SPIs,SPIBitRateSel,Read,A(5 downto 2));			end process SPIDecodeProcess;		end generate;		UARTDecode: if (UARTs > 0) generate					UARTDecodeProcess : process (A,Read,write,UARTXDataSel,UARTXBitRateSel,UARTXModeRegSel,UARTXFIFOCountSel,			                             UARTRDataSel,UARTRBitRateSel,UARTRFIFOCountSel,UARTRModeSel)			begin						LoadUARTXData <= OneOfNDecode(UARTs,UARTXDataSel,Write,A(6 downto 4));				LoadUARTXBitRate <= OneOfNDecode(UARTs,UARTXBitRateSel,Write,A(4 downto 2));				ReadUARTXBitrate <= OneOfNDecode(UARTs,UARTXBitRateSel,Read,A(4 downto 2));				LoadUARTXModeReg <= OneOfNDecode(UARTs,UARTXModeRegSel,Write,A(4 downto 2));				ReadUARTXModeReg <= OneOfNDecode(UARTs,UARTXModeRegSel,Read,A(4 downto 2));				ClearUARTXFIFO <= OneOfNDecode(UARTs,UARTXFIFOCountSel,Write,A(4 downto 2));				ReadUARTXFIFOCount <= OneOfNDecode(UARTs,UARTXFIFOCountSel,Read,A(4 downto 2));				LoadUARTRData <= OneOfNDecode(UARTs,UARTRDataSel,Read,A(6 downto 4));				LoadUARTRBitRate <= OneOfNDecode(UARTs,UARTRBitRateSel,Write,A(4 downto 2));				ReadUARTRBitrate <= OneOfNDecode(UARTs,UARTRBitRateSel,Read,A(4 downto 2));				ClearUARTRFIFO <= OneOfNDecode(UARTs,UARTRFIFOCountSel,Write,A(4 downto 2));				ReadUARTRFIFOCount <= OneOfNDecode(UARTs,UARTRFIFOCountSel,Read,A(4 downto 2));				LoadUARTRMode <= OneOfNDecode(UARTs,UARTRModeSel,Write,A(4 downto 2));				ReadUARTRMode <= OneOfNDecode(UARTs,UARTRModeSel,Read,A(4 downto 2));			end process UARTDecodeProcess;		end generate;			dotieupint: if not UseIRQLogic generate		tieupint : process(clklow)		begin			INT <= '1';		end process;	end generate;		end dataflow;  

⌨️ 快捷键说明

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