aboutsummaryrefslogtreecommitdiff
path: root/works/life
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2021-12-27 20:06:19 +0800
committercrupest <crupest@outlook.com>2021-12-27 20:06:19 +0800
commitfa8c35b6a10a971ebb7f51f9c0e2118d527e791c (patch)
treea9ebe06d44b2340079f4e9bcf300e53952fec9a8 /works/life
parentd122ab74ce2e7c3bf1e126e8b08d6b36d1cf0a83 (diff)
downloadcrupest-fa8c35b6a10a971ebb7f51f9c0e2118d527e791c.tar.gz
crupest-fa8c35b6a10a971ebb7f51f9c0e2118d527e791c.tar.bz2
crupest-fa8c35b6a10a971ebb7f51f9c0e2118d527e791c.zip
import(life): ...
Diffstat (limited to 'works/life')
-rw-r--r--works/life/computer-organization-experiment/cpu.vhdl25
-rw-r--r--works/life/computer-organization-experiment/out2.ghwbin0 -> 2244608 bytes
2 files changed, 24 insertions, 1 deletions
diff --git a/works/life/computer-organization-experiment/cpu.vhdl b/works/life/computer-organization-experiment/cpu.vhdl
index 5a7c558..7ca6d9e 100644
--- a/works/life/computer-organization-experiment/cpu.vhdl
+++ b/works/life/computer-organization-experiment/cpu.vhdl
@@ -112,7 +112,7 @@ begin
else A xor B when ALUC(2 downto 0) ?= B"110"
else std_logic_vector(signed(A) sll 16) and X"FFFF0000" when ALUC(2 downto 0) ?= B"110"
else std_logic_vector(signed(A) sll to_integer(unsigned(B))) when ALUC ?= B"0011"
- else std_logic_vector(signed(A) srl to_integer(unsigned(B))) when ALUC ?= B"0111"
+ else std_logic_vector(signed(A) srl to_integer(unsigned(B))) when ALUC ?= B"1011"
else std_logic_vector(signed(A) sra to_integer(unsigned(B))) when ALUC ?= B"1111";
Z <= S ?= X"00000000" after 10 ps;
end architecture;
@@ -136,6 +136,7 @@ end entity;
architecture Behavioral of ram is
type memory_type is array (0 to 16#30#) of word;
signal memory: memory_type := (
+/*
X"3c010000",
X"34240080",
X"20050004",
@@ -172,6 +173,28 @@ architecture Behavioral of ram is
X"00000027",
X"00000079",
X"00000115",
+*/
+ X"3C010000",
+ X"3421004C",
+ X"8C240000",
+ X"20210004",
+ X"8C250000",
+ X"20210004",
+ X"0C000009",
+ X"AC230000",
+ X"08000008",
+ X"20020010",
+ X"00001820",
+ X"30A60001",
+ X"10060001",
+ X"00641820",
+ X"00042040",
+ X"00052842",
+ X"2042FFFF",
+ X"1440FFF9",
+ X"03e00008",
+ X"0000C9AE",
+ X"0000F6E5",
others => (others => '0')
);
begin
diff --git a/works/life/computer-organization-experiment/out2.ghw b/works/life/computer-organization-experiment/out2.ghw
new file mode 100644
index 0000000..8a5e9f8
--- /dev/null
+++ b/works/life/computer-organization-experiment/out2.ghw
Binary files differ