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

📄 sao.vhd

📁 硬件出租车记数器完整的VHDL语言设计
💻 VHD
字号:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
ENTITY sao IS
	PORT(
		clk			: IN	STD_LOGIC;
		p8		: IN	STD_LOGIC_VECTOR(3 downto 0);
		p7		: IN	STD_LOGIC_VECTOR(3 downto 0);
		p6		: IN	STD_LOGIC_VECTOR(3 downto 0);
		p5		: IN	STD_LOGIC_VECTOR(3 downto 0);
		p4		: IN	STD_LOGIC_VECTOR(3 downto 0);
		p3		: IN	STD_LOGIC_VECTOR(3 downto 0);
		p2		: IN	STD_LOGIC_VECTOR(3 downto 0);
		p1		: IN	STD_LOGIC_VECTOR(3 downto 0);
		choice	: OUT	STD_LOGIC_VECTOR(7 downto 0);
		data	: OUT	STD_LOGIC_VECTOR(7 downto 0));
END sao;

ARCHITECTURE a OF sao IS
	SIGNAL count : STD_LOGIC_VECTOR(2 downto 0);
	SIGNAL temp : STD_LOGIC_VECTOR(3 downto 0);
	SIGNAL choicein, datain		 : STD_LOGIC_VECTOR(7 downto 0);

BEGIN
clk1_label:
PROCESS (clk)
BEGIN
IF clk'event and clk='1' THEN
    count<=count+1;
END IF;
END PROCESS clk1_label;
clk2_label:
PROCESS (clk)
BEGIN
if clk'event and clk='0' then
   choice<=choicein;
   data(7 downto 1)<=datain(7 downto 1);
   if( count="0110" or count="0010" )then data(0)<= '1'; else data(0)<='0'; end if;
END IF;
END PROCESS clk2_label;

choicein<="00000001" when count="000" else
		"00000010" when count="001" else
		"00000100" when count="010" else
		"00001000" when count="011" else
		"00010000" when count="100" else
		"00100000" when count="101" else
		"01000000" when count="110" else
		"10000000" ;
temp<=	p1 when count="000" else
		p2 when count="001" else
		p3 when count="010" else
		p4 when count="011" else
		p5 when count="100" else
		p6 when count="101" else
		p7 when count="110" else
		p8 ;
WITH temp select
	datain  <= "11111100" WHEN "0000",
			   "01100000" WHEN "0001",
			   "11011010" WHEN "0010",
			   "11110010" WHEN "0011",
			   "01100110" WHEN "0100",
			   "10110110" WHEN "0101",
			   "10111110" WHEN "0110",
			   "11100000" WHEN "0111",
			   "11111110" WHEN "1000",
			   "11110110" WHEN "1001",
			   "11101110" WHEN "1010",
			   "00111110" WHEN "1011",
			   "10011100" WHEN "1100",
			   "01111010" WHEN "1101",
			   "10011110" WHEN "1110",
			   "10001110" WHEN OTHERS;

END a;

⌨️ 快捷键说明

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