📄 hostmot2.vhd
字号:
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 + -