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

📄 rom.vhd

📁 简单的cpu 设计 用hdl语句设计 能实现基本的功能
💻 VHD
字号:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_arith.all;

entity rom is
port
( 
	addr:in std_logic_vector(7 downto 0);
	ce:in std_logic;
	dataout:out std_logic_vector(15 downto 0)
);
end entity rom;

architecture behave of rom is
begin
	--instructions of a program to sum from 1 to 100
	dataout <= X"02A0" when addr=X"00" and ce='0' else --LOAD A0
			   X"01A4" when addr=X"01" and ce='0' else --STORE A4
			   X"02A2" when addr=X"02" and ce='0' else --LOAD A2
			   X"01A3" when addr=X"03" and ce='0' else --STORE A3
			   X"02A4" when addr=X"04" and ce='0' else --LOOP: LOAD A4
			   X"03A3" when addr=X"05" and ce='0' else --ADD A3
			   X"01A4" when addr=X"06" and ce='0' else --STORE A4
			   X"02A3" when addr=X"07" and ce='0' else --LOAD A3
			   X"04A1" when addr=X"08" and ce='0' else --SUB A1
			   X"01A3" when addr=X"09" and ce='0' else --STORE A3
			   X"0504" when addr=X"0A" and ce='0' else --JMPGEZ LOOP
			-- some instructions for testing purpose
			   X"0CA4" when addr=X"0B" and ce='0' else --NOT A4

			   --X"02A5" when addr=X"0C" and ce='0' else --LOAD A5
			   --X"08A6" when addr=X"0D" and ce='0' else --MPY A6
			   --X"01A7" when addr=X"0E" and ce='0' else --STORE A7

			   X"0D00" when addr=X"0C" and ce='0' else --SHIFTR
			   X"0E00" when addr=X"0D" and ce='0' else --SHIFTL
			   X"1D00" when addr=X"0E" and ce='0' else --ROTR
			   X"1D00" when addr=X"0F" and ce='0' else --ROTR
			   X"1D00" when addr=X"10" and ce='0' else --ROTR
			   X"1D00" when addr=X"11" and ce='0' else --ROTR
		 	   X"1D00" when addr=X"12" and ce='0' else --ROTR
			   X"1E00" when addr=X"13" and ce='0' else --ROTL
			   X"1E00" when addr=X"14" and ce='0' else --ROTL
			   X"1E00" when addr=X"15" and ce='0' else --ROTL
			   X"1E00" when addr=X"16" and ce='0' else --ROTL
			   X"1E00" when addr=X"17" and ce='0' else --ROTL



			   X"0700" when addr=X"18" and ce='0' else --HALT
			   X"0000" when addr=X"A0" and ce='0' else --[A0] = X0000
			   X"0001" when addr=X"A1" and ce='0' else --[A1] = X0001
			   X"0064" when addr=X"A2" and ce='0' else --[A2] = X0064
			   X"FFFF";
end behave;

⌨️ 快捷键说明

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