亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? command_state_machine.vhd

?? MP3 for XPLA3 XILINX.CPLD,必須在XILINX的FPGA芯片下使用,因為IP核是xilinx
?? VHD
字號:
-- **************************************************************
-- File:  		command_state_machine.vhd
--
-- Purpose: 	Recognizes user play functions, i.e. rewind, fast
--			forward, stop and play operations. Interfaces to
--			flash control to read from starting address and 
--			song flash modules.  Loads song address counter
--			on rewind, fwd and play operatins.
--	
-- Created:		10-28-99 JLJ
-- Revised:		11-4-99 ALS
-- Revised:		11-5-99 ALS
-- Revised:		11-12-99 JLJ & ALS
-- Revised:		11-14-99 ALS
-- **************************************************************


library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;


entity command_state_machine is
    port(
        
        clock		: in STD_LOGIC;
        reset		: in STD_LOGIC;
                        
	  -- User commands from Main Control logic
	  rew			: in STD_LOGIC;		-- Asserted high for rewind operation
	  fwd			: in STD_LOGIC;		-- Asserted high for fast forward opertion
	  stop		: in STD_LOGIC;		-- Asserted high for stop opertion

        read_stadr	: out STD_LOGIC;		-- Asserted to read from Starting Address Flash: 
								-- 16 bit wide read when read_stadr = 1
	
	  -- Change starting address counter
	  stadr_inc 	: out STD_LOGIC;		-- Asserted on fast forward operation	
	  stadr_dec		: out STD_LOGIC;		-- Asserted on rewind operation
	  cmd_song_end	: out STD_LOGIC;		-- Asserted when a fast forward gets to the end of song data
	  end_flag_com	: in	STD_LOGIC;		-- Asserted when upper starting address bits match END_DATA
								-- signifies that end of song data is coming

	  -- Data from starting address counter
	  track		: in STD_LOGIC_VECTOR(4 downto 0);  -- Track Number

	  -- Load song address counter during rew, fwd, and stop operations
	  adr_ld_l		: out STD_LOGIC;		-- Asserted to write lower byte (15:0) of counter
	  adr_ld_u		: out STD_LOGIC;		-- Asserted to write upper byte (32:16) of counter

	  flash_done	: out STD_LOGIC		-- Asserted when rew/fwd/stop operation complete
								-- and song address counter is loaded and ready for
								-- play/read commands
        );

end command_state_machine;


architecture BEHAVIOURAL of command_state_machine is

-- ******************** CONSTANT DECLARATIONS ***********************
constant RESET_ACTIVE 	: STD_LOGIC := '1';
constant ALL_ZEROS	: STD_LOGIC_VECTOR(4 downto 0) := "00000";

-- ********************* SIGNAL DECLARATIONS ************************

-- Define state type for write/erase and read state machine
type STATE is (IDLE, CHK_TRACK, DEC1, DEC2, WAIT_DEC, TRACK_NUM, 
		   WT_TRACK, READ_ADR, LOAD_ADR, WAIT_ADR, WAIT_RD_INC, DONE);

-- States for write/erase and read state machine
signal prs_state, nxt_state : STATE;

-- When track number is odd, need to decrement the track number
signal odd_tracknum : std_logic;


begin
	-- ***************** SIGNAL DEFINITION *************************
	
	stadr_inc <= '1' when (fwd = '1') and (prs_state = TRACK_NUM) else '0';
	stadr_dec <= '1' when (((rew = '1') and (prs_state = TRACK_NUM))
				or (odd_tracknum = '1')
				or (prs_state = DEC1)
				or (prs_state = DEC2) )
				else '0';

	flash_done <= '1' when (prs_state = DONE) else '0';
	

	-- ***************** Process: SEQUENTIAL ************************
	-- Purpose:  	Synchronize write_erase and read target state machines
	-- Components: 	none
    
    	SEQUENTIAL: process (reset, clock)
    	begin
     		if reset = RESET_ACTIVE then	
            	prs_state <= IDLE;

        	elsif clock'event and (clock = '1') then
            	prs_state <= nxt_state;
            
        	end if;

    	end process SEQUENTIAL;
    
    

    -- ***************** Process: COMMAND_SM ************************
    -- Purpose:	Manages the changing and loading track number of 
    --		starting address flash into song flash counter.
    --		Interprets rewind, fast forward, and stop operations. 
    -- Components:  none
        
    COMMAND_SM: process (prs_state, rew, fwd, stop, track, end_flag_com)
    begin
    
	 read_stadr <= '0';
	 flash_done <= '0';
	 adr_ld_l <= '0';
	 adr_ld_u <= '0';
    	 nxt_state <= prs_state;
	 cmd_song_end <= '0';
	 odd_tracknum <= '0';

    	
        case prs_state is
        
        	----------------------- IDLE State --------------------------
        	when IDLE =>

			-- Wait for rewind, fast forward or stop command
			if (rew = '1') or (fwd = '1') or (stop = '1') then
				nxt_state <= CHK_TRACK;
			end if;
	
		--------------------- CHK_TRACK State ------------------------
		when CHK_TRACK =>
			-- this state checks the track number to see if its pointing
			-- to the upper or lower song address. Upper song addresses
			-- are stored at even locations, lower song addresses are stored
			-- at odd locations, one greater than the upper location
			-- if the track number is odd, set the odd_tracknum signal
			-- so that the number is decremented
			if track(0) = '1' then 
				odd_tracknum <= '1';
			end if;

			-- start decrmenting the track number to get it to the present track
			nxt_state <= DEC1;

		------------------------- DEC1 State --------------------------------
		when DEC1 =>
			-- in this state, the track number is decremented
			-- go to the DEC2 state to decrement the next byte
			nxt_state <= DEC2;

		-------------------------- DEC2 State -------------------------------
		when DEC2 =>
			-- in this state, the track number is decremented 
			-- go to the WAIT_DEC state for the decrement to take effect
			nxt_state <= WAIT_DEC;

		--------------------------- WAIT_DEC --------------------------------
		when WAIT_DEC =>
			-- this state provides a 1-clock delay to allow the counter to decrement
			-- go to the tracknum state to either increment or decrement the 
			-- track number based on the command
			-- if command is stop, just go to WAIT_ADR state, no adjustment
			-- to the track number is needed
			if stop = '1' then
				nxt_state <= WAIT_ADR;
			else
				nxt_state <= TRACK_NUM;
			end if;        	
        	--------------------- TRACK_NUM State -----------------------
        	when TRACK_NUM =>

			-- Increments or decrements track number
			-- Must increment starting address counter by 2
			-- since each track number is 32 bits wide
			-- if track number is all zeros and rewind, then skip to WAIT_ADR state
			-- counter will not decrement below zero
			if track = ALL_ZEROS and rew = '1' then
				nxt_state <= WAIT_ADR;
			elsif (track(0) = '0') then
				-- upper byte	
				nxt_state <= WT_TRACK;
			else 
				nxt_state <= WAIT_ADR;
			end if;

    		--------------------- WT_TRACK State -----------------------
        	when WT_TRACK =>
			-- this state allows adjustments to the track number to
			-- take effect

			nxt_state <= TRACK_NUM;


		---------------------- WAIT_ADR State ------------------------
        	when WAIT_ADR =>
			
			read_stadr <= '0';
			nxt_state <= READ_ADR;


        	---------------------- READ_ADR State ------------------------
        	when READ_ADR =>
			
			-- Read from Starting Address Flash
			read_stadr <= '0';
			nxt_state <= LOAD_ADR;  			       	
        	
        	
        	-------------------- LOAD_ADR State ------------------------
        	when LOAD_ADR =>
			
			-- Load song address counter to start next play/read
			read_stadr <= '1';

			-- if loading upper byte, check for end of data flag
			if track(0) = '0' then
				-- loading upper byte
				if end_flag_com = '1' then

					-- data read from starting address flash indicates the 
					-- end of song data has been reached
					-- assert cmd_song_end and this goes to the FLASH_CNTR logic
					-- and resets both the track number and the song flash address
					-- counter, therefore there is no need to load the counters
					cmd_song_end <= '1';
					nxt_state <= DONE;
				else
					-- not end of data
					adr_ld_u <= '1';
					nxt_state <= WAIT_RD_INC;
				end if;
		
			
			else
				-- Load lower bytes of address counter
				adr_ld_l <= '1';
				nxt_state <= DONE;
	
			end if;
		
		-------------------- WAIT_RD_INC ---------------------------
		when WAIT_RD_INC =>
			-- this state waits for the increment to the track number
			-- from the read state machine to take affect 	
			nxt_state <= WAIT_ADR;
			
	
        	-------------------- DONE State ------------------------
        	when DONE =>
			
			flash_done <= '1';		
    			nxt_state <= IDLE;		
 
        	    	
        end case;  
        
    end process COMMAND_SM;
   


end BEHAVIOURAL;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美亚洲国产一区二区三区va| 精品久久久久久久人人人人传媒 | 亚洲不卡一区二区三区| www国产成人| 欧美日韩视频专区在线播放| 欧美精品一区二区三区一线天视频 | 亚洲免费资源在线播放| 国产在线视频一区二区| 在线观看视频一区二区欧美日韩| 久久久99精品免费观看| 三级久久三级久久久| 成人黄色在线网站| 久久亚洲免费视频| 日韩二区三区在线观看| 色婷婷综合久色| 亚洲国产高清在线观看视频| 欧美a级一区二区| 欧美日韩一二区| 亚洲婷婷在线视频| 风间由美一区二区av101| 精品美女在线播放| 久久精品国产99国产精品| 色综合久久中文综合久久97| 国产精品久久久久久久久动漫| 精彩视频一区二区| 精品国产乱码久久久久久闺蜜| 亚洲超碰精品一区二区| 欧美日韩中文精品| 亚洲主播在线播放| 欧美性xxxxx极品少妇| 亚洲精选一二三| 91久久国产综合久久| 亚洲麻豆国产自偷在线| 色偷偷久久一区二区三区| 亚洲欧美一区二区久久| 91久久久免费一区二区| 亚洲精品亚洲人成人网| 色8久久人人97超碰香蕉987| 亚洲欧美日韩国产综合| 91福利在线免费观看| 洋洋成人永久网站入口| 欧美性猛交xxxxxx富婆| 亚洲综合一区二区| 欧美美女一区二区在线观看| 日本不卡视频在线| 精品久久国产老人久久综合| 国产乱子伦一区二区三区国色天香| 精品剧情在线观看| 懂色av一区二区夜夜嗨| 亚洲欧美在线视频| 欧美色综合网站| 免费高清在线视频一区·| 日韩免费福利电影在线观看| 国产精品资源在线看| 日本一区二区电影| 欧美最猛黑人xxxxx猛交| 日本伊人精品一区二区三区观看方式| 91精品福利在线一区二区三区| 免费成人在线网站| 国产日韩欧美一区二区三区综合| 99精品国产视频| 性欧美疯狂xxxxbbbb| 欧美va亚洲va| 波多野结衣视频一区| 亚洲成av人片www| 久久人人爽人人爽| 91丨porny丨国产| 蜜臀av国产精品久久久久 | 国产精品久久久久久久久动漫| 91蜜桃在线观看| 日韩不卡免费视频| 国产精品免费视频网站| 欧美日韩中文一区| 国产成+人+日韩+欧美+亚洲| 一区二区三区日韩精品视频| 日韩精品自拍偷拍| 91猫先生在线| 国产在线视频一区二区| 亚洲国产中文字幕| 久久久久久免费网| 欧美日韩大陆在线| 成人app网站| 六月丁香综合在线视频| 亚洲狼人国产精品| 欧美国产禁国产网站cc| 91精品在线一区二区| 成+人+亚洲+综合天堂| 麻豆91小视频| 亚洲一区二区三区四区的| 国产日本亚洲高清| 欧美一区二区观看视频| 在线免费一区三区| 不卡一区在线观看| 欧美日韩久久久一区| 亚洲精品午夜久久久| 成人午夜看片网址| 一本大道久久a久久综合| 激情另类小说区图片区视频区| 亚洲欧美激情插| 欧美国产日韩在线观看| 欧美tickling网站挠脚心| 欧美人妖巨大在线| 色av综合在线| 91在线精品秘密一区二区| 国产精品一二二区| 韩国欧美一区二区| 美女免费视频一区二区| 亚洲第一狼人社区| 亚洲一卡二卡三卡四卡五卡| 国产精品成人免费| 国产精品视频一二| 国产精品久久久久久久久晋中| 国产亚洲欧美在线| 国产午夜久久久久| 久久精子c满五个校花| 久久亚洲春色中文字幕久久久| 在线观看视频91| jlzzjlzz亚洲女人18| 国产成人精品免费| 国产精品123区| 国产精品69毛片高清亚洲| 久久国产精品区| 久久精品国产亚洲5555| 久久www免费人成看片高清| 精品一区二区在线观看| 国内精品在线播放| 成人理论电影网| 97国产一区二区| 欧美在线观看视频一区二区三区| 91久久国产最好的精华液| 欧美在线观看视频在线| 91麻豆精品国产自产在线| 欧美一级生活片| 久久久久青草大香线综合精品| 久久午夜羞羞影院免费观看| 中文字幕欧美国产| 一区二区三区在线免费| 视频一区中文字幕国产| 精品一区二区三区免费毛片爱 | 色综合久久中文综合久久97| 欧美视频一区二区三区四区| 在线亚洲欧美专区二区| 一区二区不卡在线视频 午夜欧美不卡在 | 国产精品乱码一区二区三区软件| 国产精品久久网站| 日韩有码一区二区三区| 国产精品综合一区二区三区| 9i看片成人免费高清| 91精品国产综合久久久蜜臀粉嫩| 精品国产麻豆免费人成网站| 综合欧美亚洲日本| 日本网站在线观看一区二区三区| 国产乱子伦视频一区二区三区| 91麻豆自制传媒国产之光| 日韩午夜激情av| 亚洲精品视频免费看| 久久er精品视频| 91精品福利视频| 久久久久久**毛片大全| 亚洲国产一区二区三区青草影视| 黑人巨大精品欧美一区| 欧美性极品少妇| 国产偷国产偷亚洲高清人白洁| 亚洲一区在线视频观看| 国产成人av电影在线| 制服丝袜av成人在线看| 国产欧美日韩视频一区二区 | 免费高清视频精品| 色八戒一区二区三区| 久久久99精品免费观看不卡| 午夜精品福利一区二区蜜股av| 国产精品白丝jk白祙喷水网站| 色噜噜狠狠色综合欧洲selulu | 制服丝袜亚洲精品中文字幕| 国产精品亲子乱子伦xxxx裸| 日本怡春院一区二区| 91福利精品视频| 国产丝袜在线精品| 国产在线精品一区二区| 3atv在线一区二区三区| 亚洲精品中文在线观看| 99精品视频在线播放观看| 久久一区二区视频| 开心九九激情九九欧美日韩精美视频电影| 91啪亚洲精品| 亚洲三级在线免费观看| 成人久久视频在线观看| 欧美精品一区二区精品网| 日韩电影在线观看电影| 欧美日韩国产综合一区二区三区| 亚洲天堂成人在线观看| va亚洲va日韩不卡在线观看| 欧美激情自拍偷拍| 国产精品系列在线播放| 久久综合九色综合欧美98| 麻豆久久久久久| 精品国产区一区| 国产精品一二三在| 91麻豆精品在线观看| 中文字幕一区二区三区av|