<- previous index next ->
Project part1 starts with part1_start.vhdl Search for "???" where you need to do some work. !!! remove ??? , ... , they are not legal VHDL. The schematic for non CMPE is:with ALU schematic for non CMPE
CMPE include divide, divcas16 covered in Lecture 8 and provided. Use your pmul16.vhdl from HW6.
Various versions have different signal names for same signal, orop_and may be just orop, result of anding oropa with rrop S_sel may be shortened sllop_and_srlop Extracted code to indicate where you need to do some work "...": library IEEE; use IEEE.std_logic_1164.all; entity alu_32 is -- given. Do not change this interface port(inA : in std_logic_vector (31 downto 0); inB : in std_logic_vector (31 downto 0); inst : in std_logic_vector (31 downto 0); result : out std_logic_vector (31 downto 0)); end entity alu_32; architecture schematic of alu_32 is signal cin : std_logic := '0'; signal cout : std_logic; -- ... add or change signals as required begin -- schematic adder: entity WORK.add32 port map(a => inA, b => inB, -- ... change cin => cin, -- ... change sum => result, -- ... change cout => cout); -- ... -- bsh: entity WORK.bshift port map(left => sllop, -- logical => '1', -- shift => inst(10 downto 6), -- input => inB, -- output => bresult); -- ... -- r1: entity WORK.equal6 port map(inst => inst(31 downto 26), -- test => "000000", -- equal => rrop); -- ... -- s1: entity WORK.equal6 port map(inst => inst(5 downto 0), -- test => "100010", -- equal => subopa); -- ... -- a1: subop <= rrop and subopa; -- ... end architecture schematic; -- of alu_32 The additional files, non CMPE, needed are: part1.abs the program to be executed part1.run to stop execution, no halt instruction part1.chk the expected output cs411_opcodes.txt opcode bit patterns You will need to enter opcode bit patterns not in part1_start.vhdl. Modify your Makefile : all: ... part1.out Project CMPE part1 starts with part1ce_start.vhdl The additional files, for CMPE, needed are: part1ce.abs the program to be executed part1ce.run to stop execution, no halt instruction part1ce.chk the expected output cs411_opcodes.txt opcode bit patterns You will need to enter opcode bit patterns not in part1_start.vhdl. Modify your non CMPE Makefile : all: ... part1.out part1.out: add32.vhdl bshift.vhdl part1.vhdl part1.abs part1.run ncvhdl -v93 add32.vhdl ncvhdl -v93 bshift.vhdl ncvhdl -v93 part1.vhdl # renamed and modified part1_start.vhdl ncelab -v93 part1:schematic ncsim -batch -logfile part1.out -input part1.run part1 optional in Makefile, should be run on GL before submit cs411 part1 part1.vhdl diff -iw part1.out part1.chk should be no differences other than copyright or dates Modify your CMPE Makefile : all: ... part1.out part1.out: add32.vhdl bshift.vhdl pmul16.vhdl divcas16.vhdl \ part1.vhdl part1.abs part1.run ncvhdl -v93 add32.vhdl ncvhdl -v93 bshift.vhdl ncvhdl -v93 pmul16.vhdl ncvhdl -v93 divcas16.vhdl ncvhdl -v93 part1.vhdl # renamed and modified part1ce_start.vhdl ncelab -v93 part1:schematic ncsim -batch -logfile part1.out -input part1.run part1 optional in Makefile, should be run on GL before submit cs411 part1 part1.vhdl diff -iw part1.out part1.chk should be no differences other than copyright or dates Now, non CMPE work on the ALU Now, CMPE work on the ALU The full project writeup: cs411_proj.shtml
<- previous index next ->