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

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

?? sound_control.vhd

?? MP3 for XPLA3 XILINX.CPLD,必須在XILINX的FPGA芯片下使用,因為IP核是xilinx
?? VHD
字號:
-- **************************************************************
-- File:  		sound_control.vhd
--
-- Purpose: 	This file implements the Sound Control section of the
--			user interface.  This module input and outputs are 
--			described below. All inputs are processed on the rising
--			edge of the specific input signal.
--
--			Inputs:
--			- vol_inc: signal from user interface that volume is
--			  being adjusted up by one unit. 
--			- vol_dec: signal from user interface that volume is
--			  being adjusted down by one unit. 
--			- mute: signal from user interface that mute is turned 
--			  on/off.
--			- mpeg_done - signal from main logic signifying that
--			  volume adjustment has completed
--		
--			Outputs:
--			- vol_lvl[5:0]: vector specifying the adjusted volume level
--			- vol_adj: rising edge signal that volume has changed
--			- mute_stat: signal specifying whether mute is on/off
--			- mute_change: rising edge signal that mute has changed
--
-- Created:		10/21/99	CLH 
-- Revised:		10/27/99	ALS
-- Revised:		11/28/99	ALS
-- Revised:		02/23/00	ALS
-- **************************************************************

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

entity sound_control is
  
  port(
	-- *********** input signals ***********************************
	vol_inc	: in STD_LOGIC;
	vol_dec	: in STD_LOGIC;
	mute 		: in STD_LOGIC;
	mpeg_done	: in STD_LOGIC;

	-- *********** output signals **********************************
	vol_lvl	: inout STD_LOGIC_VECTOR(5 downto 0);
	vol_adj	: out STD_LOGIC;
	mute_stat	: inout STD_LOGIC;
	mute_chg	: inout STD_LOGIC;

	-- *********** standard input signals **************************
	clock 	: in STD_LOGIC;
	reset		: in STD_LOGIC
	);
end sound_control;

architecture behave of sound_control is

	-- ************************* CONSTANT DECLARATIONS *****************
	--  standard signals 
	constant RESET_ACTIVE	: STD_LOGIC := '1';
	constant REG_DELAY	: time := 3 ns;

	--  volume setting constants 
	constant MAX_VOL	: std_logic_vector (5 downto 0) := "111000";
	constant MIN_VOL	: std_logic_vector (5 downto 0) := "001100";
	constant LOW_VOL_BITS	: std_logic_vector(1 downto 0) := "00"; -- lower bits of volume
											     -- level stay at default

	-- ************************ COMPONENT DECLARATIONS *****************
	-- Up/Down 4 bit counter 
	--	This counter will load in the default value "101" at reset
	component UPDWNCNT4
		port(
	     		up		 : in std_logic;
			down		 : in std_logic;
	     		qout         : out std_logic_vector (3 downto 0);
 	     		reset        : in std_logic;                       -- Active high reset
	     		clock        : in std_logic                        -- Clock
	     	);
		
	end component;


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

	--  Define states for volume control 
	type STATE_TYPE is (ST_IDLE, ST_MAX_CHK, ST_MIN_CHK, ST_ADJ);	
	signal state, next_state : STATE_TYPE;

	--  define combinatorial signals for process 
	signal vol_adj_com 	: STD_LOGIC;	-- variable for combinatorial mute status
	
	--  These signals are used to detect a rising edge of the specified signal. 
	signal vol_inc_reg	: STD_LOGIC;
	signal vol_dec_reg	: STD_LOGIC;
	signal mute_reg		: STD_LOGIC;
	signal vol_inc_re		: STD_LOGIC;
	signal vol_dec_re		: STD_LOGIC;
	

	-- Counter interface signals
	signal up, down		: std_logic;	-- up, down counter controls	
	signal vol_cnt		: std_logic_vector(3 downto 0); -- counter output	

begin

-- only use a 4-bit counter for the volume, vol_lvl is this value with "00" appended
vol_lvl <= vol_cnt & LOW_VOL_BITS;

-- ************* Process: INPUT_REG **************
-- Purpose: provide registered value that will be
-- used in the PLAY_SM process to determine if input
-- signal is a rising edge


	INPUT_REG: process(reset, clock)
	begin
		if reset =  RESET_ACTIVE then	
			vol_inc_reg <= '0' ;
			vol_dec_reg <= '0' ;
			mute_reg <= '0' ;

		elsif clock'event and (clock = '1') then
			vol_inc_reg <= vol_inc ;
			vol_dec_reg <= vol_dec ;
			mute_reg <= mute ;

		end if;		

	end process INPUT_REG;

-- set rising edge signals
vol_inc_re <= '1' when vol_inc = '1' and vol_inc_reg = '0'
			else '0';
vol_dec_re <= '1' when vol_dec = '1' and vol_dec_reg = '0'
			else '0';

	-- ************* Process: SEQUENTIAL **************
	-- Purpose: Synchronize target state machine
	-- Components: None

	SEQUENTIAL: process(reset, clock)
	begin
		if reset =  RESET_ACTIVE then
			state <= ST_IDLE ;
			vol_adj <= '0' ;

		elsif clock'event and (clock = '1') then
			state <= next_state ;
			vol_adj <= vol_adj_com ;

		end if;
	end process SEQUENTIAL;

	
	-- ************* Process: MUTE_CHG **************
	-- Purpose: Keep track of mute status. Mute toggles on/off 
	--          when mute is asserted
	-- Components: None
	MUTE_STATES: process(reset, clock)
	begin
	if reset = RESET_ACTIVE then
		mute_stat <= '0' ;
		mute_chg <= '0' ;
	elsif clock'event and clock = '1' then
		if(mute_reg = '0' and mute = '1') then  -- detect rising edge of mute signal
			-- toggle status of mute
			mute_stat <= not(mute_stat) ;	
			mute_chg <= '1' ;

		else
			mute_stat <= mute_stat ;
			mute_chg <= '0' ;

		end if;
	end if;

	end process MUTE_STATES;


	-- ************* Process: VOL_SM **************
	-- Purpose: Target state machine to define volume levels
	-- Components: None
	VOL_SM: process(state, vol_inc_re, vol_dec_re, mpeg_done, vol_lvl)
	begin

	next_state <= state;	-- reset state variable
	up <= '0';			-- hold counter constant
	down <= '0';		-- hold counter constant
	vol_adj_com <= '0';


	case state is

		------------- ST_IDLE State --------------
		when ST_IDLE =>
			if vol_inc_re = '1' then
				next_state <= ST_MAX_CHK;
				vol_adj_com <= '1';

			elsif vol_dec_re = '1' then
				next_state <= ST_MIN_CHK;
				vol_adj_com <= '1';

			end if;


		------------- ST_MAX_CHK State --------------
		when ST_MAX_CHK =>
			if vol_lvl = MAX_VOL then
				-- volume is at max, no need to increment
				-- return to IDLE state
				next_state <= ST_IDLE;
		
			else
				-- increment the volume and go to the state 
				-- that waits for mpeg_done
				up <= '1';
				next_state <= ST_ADJ;
			end if;

		------------- ST_MIN_CHK State --------------
		when ST_MIN_CHK =>
			if vol_lvl = MIN_VOL then
				-- volume level is at minimum, no need to decrement
			next_state <= ST_IDLE;
		
		else
			-- decrement the volume and go to the state that waits
			-- for MPEG_DONE
			down <= '1';
			next_state <= ST_ADJ;
		end if;

		------------- ST_ADJ State ------------------
		when ST_ADJ	=>
			if mpeg_done = '1' then	
				next_state <= ST_IDLE;
			end if;

	end case;		
	end process VOL_SM;

-- *************************** Volume Counter Instantiation *******************
	VOLUME_COUNTER : UPDWNCNT4
	  port map(  up		=> up,
			down		=> down,
			qout		=> vol_cnt,
			reset		=> reset,
			clock		=> clock
			);


end behave;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美在线另类| 亚洲视频香蕉人妖| 欧美日韩国产一级| 欧美性感一类影片在线播放| 99精品视频中文字幕| 国产伦精品一区二区三区免费迷 | 丁香激情综合国产| 激情欧美一区二区| 国产一区二区三区香蕉| 精品一二三四区| 国产二区国产一区在线观看| 国产精品伊人色| 波多野结衣在线aⅴ中文字幕不卡| 粉嫩一区二区三区在线看| 成人性生交大片免费看中文| 成人精品视频一区| 91久久精品国产91性色tv| 欧美日韩国产另类一区| 欧美成人精品高清在线播放| 国产亚洲成aⅴ人片在线观看 | 亚洲图片另类小说| 综合亚洲深深色噜噜狠狠网站| 亚洲欧美日本韩国| 日日欢夜夜爽一区| 国产一区二区免费在线| 99免费精品在线| 欧美区一区二区三区| 2欧美一区二区三区在线观看视频| 亚洲国产精品成人久久综合一区| 亚洲色欲色欲www在线观看| 亚洲一区二区三区精品在线| 麻豆精品在线看| 97久久人人超碰| 日韩一区二区精品在线观看| 国产日产欧美精品一区二区三区| 亚洲激情六月丁香| 国产一区二区0| 欧美日韩成人高清| 日本一区二区久久| 日韩经典一区二区| proumb性欧美在线观看| 91精品婷婷国产综合久久| 国产欧美日韩综合| 日韩av一区二区三区四区| 国产成a人亚洲| 欧美一区二区三区在线观看视频| 中文字幕精品—区二区四季| 免费看日韩精品| 欧美日韩综合在线免费观看| 国产精品久久久久久一区二区三区 | www.日本不卡| 日韩欧美精品在线视频| 亚洲天堂久久久久久久| 国产一区视频导航| 欧美日韩一级片在线观看| 中文字幕免费观看一区| 蜜桃av噜噜一区二区三区小说| 日本精品免费观看高清观看| 国产精品色一区二区三区| 日韩福利电影在线| 在线观看成人小视频| 国产精品天干天干在观线| 久久99久久精品| 欧美一级黄色录像| 午夜精品123| 在线观看国产精品网站| 亚洲欧美激情视频在线观看一区二区三区| 国产盗摄视频一区二区三区| 精品免费国产二区三区| 日韩中文字幕91| 欧美日韩国产一级| 亚洲成人免费在线| 欧美日韩午夜影院| 亚洲成人精品一区| 欧美日韩国产综合视频在线观看| 亚洲国产另类精品专区| 精品视频一区二区不卡| 亚洲国产美女搞黄色| 欧美撒尿777hd撒尿| 天天色天天操综合| 91精品国产乱码久久蜜臀| 肉色丝袜一区二区| 4438x亚洲最大成人网| 免费精品视频在线| 精品国产露脸精彩对白| 国产精品一区二区91| 国产午夜精品一区二区三区四区 | 国产精品久久久久婷婷| www.亚洲精品| 亚洲制服丝袜在线| 欧美日韩色综合| 久久国内精品自在自线400部| 久久久亚洲精品石原莉奈| 国产成人在线视频网址| 亚洲少妇30p| 欧美一区二区美女| 国产美女娇喘av呻吟久久| 中文字幕一区二区三区不卡在线 | 亚洲精选免费视频| 欧美高清www午色夜在线视频| 蜜桃精品在线观看| 国产欧美一区二区精品忘忧草| 成+人+亚洲+综合天堂| 亚洲一区二区三区视频在线| 欧美精品一区二区在线观看| 成人av动漫网站| 午夜精品一区在线观看| 精品对白一区国产伦| 91蝌蚪porny成人天涯| 蜜臀av一区二区在线免费观看 | 久久综合久久综合九色| 不卡视频在线看| 午夜精品免费在线| 久久久精品欧美丰满| 欧美另类变人与禽xxxxx| 国产麻豆一精品一av一免费| 亚洲综合免费观看高清完整版在线| 精品第一国产综合精品aⅴ| 成人不卡免费av| 奇米一区二区三区av| 最新国产成人在线观看| 久久久另类综合| 欧美日韩精品免费| 成人va在线观看| 国产精品一区免费视频| 性做久久久久久| 亚洲欧美自拍偷拍| 久久久99久久| 日韩精品资源二区在线| 在线亚洲+欧美+日本专区| 国产精品911| 开心九九激情九九欧美日韩精美视频电影 | 午夜电影一区二区| 久久久久久久综合| 欧美精品xxxxbbbb| 欧美伊人久久久久久久久影院 | 亚洲风情在线资源站| 中文字幕 久热精品 视频在线| 日韩一本二本av| 欧美性大战xxxxx久久久| 成人黄色av网站在线| 国产成人精品影视| 国产剧情一区二区三区| 精品一区二区三区免费观看| 奇米777欧美一区二区| 日韩电影免费一区| 午夜精品福利一区二区蜜股av| 亚洲一区二区欧美日韩| 亚洲精品久久久蜜桃| 夜色激情一区二区| 亚洲一区二区三区在线| 亚洲成av人片一区二区梦乃| 亚洲大型综合色站| 亚欧色一区w666天堂| 日韩在线一区二区三区| 日本不卡一区二区| 蜜臀av性久久久久av蜜臀妖精| 日韩国产精品大片| 麻豆成人免费电影| 国产在线视频精品一区| 国产美女一区二区三区| 成人精品一区二区三区中文字幕| 成人18视频日本| 在线观看日韩国产| 欧美伊人精品成人久久综合97 | 久久久高清一区二区三区| 精品成人在线观看| 久久久99精品久久| 亚洲欧美一区二区三区孕妇| 午夜天堂影视香蕉久久| 久久精品国产77777蜜臀| 美女精品一区二区| 国产精品亚洲一区二区三区妖精| 丁香一区二区三区| 欧美在线高清视频| 日韩欧美综合在线| 中文欧美字幕免费| 一区二区三区中文在线观看| 日韩高清不卡一区二区| 国产精品一品二品| 欧美自拍丝袜亚洲| 精品精品国产高清一毛片一天堂| 国产欧美日韩综合精品一区二区| 一区二区三区四区亚洲| 日本大胆欧美人术艺术动态| 成人福利视频在线| 91精品国产综合久久福利软件| 久久久91精品国产一区二区三区| 亚洲久本草在线中文字幕| 日韩精品免费视频人成| 国产激情91久久精品导航 | 人人精品人人爱| 成人黄色在线看| 91精品国产欧美一区二区成人 | 亚洲成a人片在线观看中文| 久久国产欧美日韩精品| 日本精品视频一区二区三区| 国产欧美一区二区精品仙草咪| 视频在线观看一区| 不卡的av在线|