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

📄 cis.vhd

📁 CF VHDL The CF+ design was designed using the timing diagrams of the Compact Flash specification re
💻 VHD
字号:
-- cis.vhd

-- (c) Copyright 2003 Xilinx, Inc
-- All rights reserved

--
-- Created: 2/6/2003 JRH
--	This code implements the CIS portion of the Attribute memory for the CF+ interface

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

entity cis is
  
port(	-- inputs
		cis_addr	: in	std_logic_vector(10 downto 0);	-- address bus

		-- outputs
		cis_data	: out	std_logic_vector(7 downto 0)	-- data byte
	
);

end cis;

architecture behave of cis is

begin
	--**************  CIS data storage *******************
	cis_array: process(cis_addr)

	begin
		case cis_addr is

			 -------------- Device Information Tuple -----------------
			 when "00000000000" => cis_data <= "00000001";	-- 01 - Device information tuple.
			 when "00000000010" => cis_data <= "00000010";	-- 02 - Link byte. 
			 when "00000000100" => cis_data <= "00000000";	-- 00 - Not a memory device.
			 when "00000000110" => cis_data <= "11111111";	-- FF - Termination byte.

			 ---------- Level1/Product Information Tuple -------------
			 when "00000001000" => cis_data <= "00010101";	-- 15 - Level1/product information tuple.
			 when "00000001010" => cis_data <= "00010001";	-- 11 - Link byte.
			 when "00000001100" => cis_data <= "00000100";	-- 04 - Major Version Number.
			 when "00000001110" => cis_data <= "00000001";	-- 01 - Minor Version Number.
			 when "00000010000" => cis_data <= "01111000";	-- 78 - X
			 when "00000010010" => cis_data <= "01001001";	-- 49 - I
			 when "00000010100" => cis_data <= "01001010";	-- 4C - L
			 when "00000010110" => cis_data <= "01001001";	-- 49 - I
			 when "00000011000" => cis_data <= "01001110";	-- 4E - N
			 when "00000011010" => cis_data <= "01111000";	-- 78 - X
			 when "00000011100" => cis_data <= "00000000";	-- 00 - End Manufacturer name
			 when "00000011110" => cis_data <= "01000100";	-- 44 - D
			 when "00000100000" => cis_data <= "01010011";	-- 53 - S
			 when "00000100010" => cis_data <= "01010000";	-- 50 - P
			 when "00000100100" => cis_data <= "00000000";	-- 00 - End product name
			 when "00000100110" => cis_data <= "01010110";	-- 56 - V
			 when "00000101000" => cis_data <= "00100000";	-- 20 - blank space
			 when "00000101010" => cis_data <= "00110001";	-- 31 - 1
			 when "00000101100" => cis_data <= "00101110";	-- 2E - .
			 when "00000101110" => cis_data <= "00110000";	-- 30 - 0
			 when "00000110000" => cis_data <= "00000000";	-- 00 - End of Version Information. 
			 when "00000110010" => cis_data <= "11111111";	-- FF - Termination byte.

			 -------------- Configuration Table Tuple ----------------
			 when "00000110100" => cis_data <= "00011010";	-- 1A - Configuration table tuple.
			 when "00000110110" => cis_data <= "00000101";	-- 05 - Link byte
			 when "00000111000" => cis_data <= "00000001";	-- 01 - Two byte base address.
			 when "00000111010" => cis_data <= "00000000";	-- 00 - Index number of Last confiiguration table entry.
			 when "00000111100" => cis_data <= "00000000";	-- 00 - Base address LSB.      
			 when "00000111110" => cis_data <= "00000010";	-- 02 - Base address MSB.
			 when "00001000000" => cis_data <= "00010111";	-- 17 - configuration mask.

			 ----------- Configuration Table Entry Tuple. ------------
			 when "00001000010" => cis_data <= "00011011";	-- 1B - Configuration table entry tuple.
			 when "00001000100" => cis_data <= "00001001";	-- 09 - Link byte
			 when "00001000110" => cis_data <= "11000000";	-- C0 - configuration index.
			 when "00001001000" => cis_data <= "00000001";	-- 01 - Interface descriptor entry.
			 when "00001001010" => cis_data <= "00011000";	-- 18 - Feature Selection byte.
			 when "00001001100" => cis_data <= "10101010";	-- AA - IO description byte.
			 when "00001001110" => cis_data <= "01100000";	-- 60 - length size descriptor.
			 when "00001010000" => cis_data <= "00000000";	-- 00 - Starting address LSB.
			 when "00001010010" => cis_data <= "00000000";	-- 00 - Starting address MSB.
			 when "00001010100" => cis_data <= "00000111";	-- 07 - Length of adrress block.
			 when "00001010110" => cis_data <= "00100110";	-- 26 - Interrupt byte.

			 ------------------ Termination Tuple. -------------------
			 when "00001011000" => cis_data <= "00010100";	-- 14 - Termination tuple.
			 when "00001011010" => cis_data <= "00000000";	-- 00 - Link.
			 when "00001011100" => cis_data <= "11111111";	-- FF - Termination byte  

			 when others 	     => cis_data <= "11111111";	-- FF - Termination byte  
		end case;

	end process;
	
end behave;


⌨️ 快捷键说明

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