File transfer push
This commit is contained in:
commit
4ecf68da1e
57 changed files with 546 additions and 0 deletions
BIN
finalsPrep/Number systems.pdf
Normal file
BIN
finalsPrep/Number systems.pdf
Normal file
Binary file not shown.
BIN
finalsPrep/RAM Supplement.pdf
Normal file
BIN
finalsPrep/RAM Supplement.pdf
Normal file
Binary file not shown.
BIN
finalsPrep/Study Guide - Final Exam.pdf
Normal file
BIN
finalsPrep/Study Guide - Final Exam.pdf
Normal file
Binary file not shown.
BIN
handouts/CPET233_syllabus_2191.pdf
Normal file
BIN
handouts/CPET233_syllabus_2191.pdf
Normal file
Binary file not shown.
BIN
handouts/Homework Policy.pdf
Normal file
BIN
handouts/Homework Policy.pdf
Normal file
Binary file not shown.
BIN
handouts/dickens_schedule_fall19.PNG
Normal file
BIN
handouts/dickens_schedule_fall19.PNG
Normal file
Binary file not shown.
After Width: | Height: | Size: 28 KiB |
BIN
handouts/hwgroups_session1.PNG
Normal file
BIN
handouts/hwgroups_session1.PNG
Normal file
Binary file not shown.
After Width: | Height: | Size: 55 KiB |
BIN
handouts/hwgroups_session2.PNG
Normal file
BIN
handouts/hwgroups_session2.PNG
Normal file
Binary file not shown.
After Width: | Height: | Size: 45 KiB |
BIN
week1/1 Digital Logic Review.pdf
Normal file
BIN
week1/1 Digital Logic Review.pdf
Normal file
Binary file not shown.
BIN
week1/2 Digital Logic Review II.pdf
Normal file
BIN
week1/2 Digital Logic Review II.pdf
Normal file
Binary file not shown.
BIN
week1/HW1.pdf
Normal file
BIN
week1/HW1.pdf
Normal file
Binary file not shown.
BIN
week10/12 Registers and Counters.pdf
Normal file
BIN
week10/12 Registers and Counters.pdf
Normal file
Binary file not shown.
BIN
week10/13 Shift Registers.pdf
Normal file
BIN
week10/13 Shift Registers.pdf
Normal file
Binary file not shown.
BIN
week10/HW9.pdf
Normal file
BIN
week10/HW9.pdf
Normal file
Binary file not shown.
BIN
week11/14 Arrays and Memory Inference.pdf
Normal file
BIN
week11/14 Arrays and Memory Inference.pdf
Normal file
Binary file not shown.
BIN
week11/15 Finite State Machines.pdf
Normal file
BIN
week11/15 Finite State Machines.pdf
Normal file
Binary file not shown.
BIN
week11/HW10.pdf
Normal file
BIN
week11/HW10.pdf
Normal file
Binary file not shown.
BIN
week12/16 State Machine VHDL.pdf
Normal file
BIN
week12/16 State Machine VHDL.pdf
Normal file
Binary file not shown.
BIN
week12/17 State Machine Outputs and Logic Glitches.pdf
Normal file
BIN
week12/17 State Machine Outputs and Logic Glitches.pdf
Normal file
Binary file not shown.
BIN
week12/HW11.pdf
Normal file
BIN
week12/HW11.pdf
Normal file
Binary file not shown.
BIN
week12/Lecture17_ExampleCode.pdf
Normal file
BIN
week12/Lecture17_ExampleCode.pdf
Normal file
Binary file not shown.
BIN
week12/Study Topics Exam3.pdf
Normal file
BIN
week12/Study Topics Exam3.pdf
Normal file
Binary file not shown.
BIN
week13/18 Generics and Loops.pdf
Normal file
BIN
week13/18 Generics and Loops.pdf
Normal file
Binary file not shown.
BIN
week13/HW12.pdf
Normal file
BIN
week13/HW12.pdf
Normal file
Binary file not shown.
BIN
week14/19 Variables, VHDL Rules and Synthesis.pdf
Normal file
BIN
week14/19 Variables, VHDL Rules and Synthesis.pdf
Normal file
Binary file not shown.
BIN
week15/20 Variables and Attributes.pdf
Normal file
BIN
week15/20 Variables and Attributes.pdf
Normal file
Binary file not shown.
BIN
week15/21 Metastability and Synchronizing Circuits.pdf
Normal file
BIN
week15/21 Metastability and Synchronizing Circuits.pdf
Normal file
Binary file not shown.
BIN
week15/TeammateEvaluationForm_2nd.docx
Normal file
BIN
week15/TeammateEvaluationForm_2nd.docx
Normal file
Binary file not shown.
BIN
week2/3 Introduction to VHDL I.pdf
Normal file
BIN
week2/3 Introduction to VHDL I.pdf
Normal file
Binary file not shown.
BIN
week2/HW2.pdf
Normal file
BIN
week2/HW2.pdf
Normal file
Binary file not shown.
BIN
week3/4 concurrent VHDL.pdf
Normal file
BIN
week3/4 concurrent VHDL.pdf
Normal file
Binary file not shown.
BIN
week3/5 Sequential VHDL.pdf
Normal file
BIN
week3/5 Sequential VHDL.pdf
Normal file
Binary file not shown.
BIN
week3/HW3.pdf
Normal file
BIN
week3/HW3.pdf
Normal file
Binary file not shown.
BIN
week4/6 TestBenches.pdf
Normal file
BIN
week4/6 TestBenches.pdf
Normal file
Binary file not shown.
BIN
week4/6.5 Practice Problems.pdf
Normal file
BIN
week4/6.5 Practice Problems.pdf
Normal file
Binary file not shown.
BIN
week4/HW4.pdf
Normal file
BIN
week4/HW4.pdf
Normal file
Binary file not shown.
315
week4/decode3to8.vhd
Normal file
315
week4/decode3to8.vhd
Normal file
|
@ -0,0 +1,315 @@
|
|||
LIBRARY IEEE;
|
||||
USE IEEE.STD_LOGIC_1164.ALL;
|
||||
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
|
||||
|
||||
--*************************************************************************************************
|
||||
--Please note that VHDL does not allow for multiple architectures in the same file.
|
||||
--This file will not compile.
|
||||
--It is meant to provide students with the multiple solutions to the same problem
|
||||
--************************************************************************************************
|
||||
|
||||
--The following is an entity and 8 different architectures for a 3 to 8 decoder
|
||||
--A decoder works as follows:
|
||||
--one and only one output can be 1
|
||||
--the output that is 1 is selected by the binary number formed by the select inputs
|
||||
|
||||
--The truth table is below
|
||||
--------------------------------------------------------------------------------------------------
|
||||
-- S2 | S1 | S0 || Y7 | Y6 | Y5 | Y4 | Y3 | Y2 | Y1 | Y0 |
|
||||
-- ----|----|----||----|----|----|----|----|----|----|----|
|
||||
-- 0 | 0 | 0 || 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
|
||||
-- 0 | 0 | 0 || 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
|
||||
-- 0 | 0 | 0 || 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
|
||||
-- 0 | 0 | 0 || 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
|
||||
-- 0 | 0 | 0 || 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
|
||||
-- 0 | 0 | 0 || 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
|
||||
-- 0 | 0 | 0 || 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
-- 0 | 0 | 0 || 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
----------------------------------------------------------
|
||||
|
||||
--These models of the 3 to 8 decoder have all of the inputs
|
||||
--and outputs as individual std_logic signals
|
||||
|
||||
ENTITY decode3to8 IS
|
||||
PORT(s2, s1, s0 : IN STD_LOGIC;
|
||||
y0, y1, y2, y3, y4, y5, y6, y7 : OUT STD_LOGIC);
|
||||
END decode3to8;
|
||||
|
||||
--************************************************************************************************
|
||||
--this architecture uses a Conditional signal assignment
|
||||
--It also uses an internal std_logic_vector signal to assign all of the outputs at once
|
||||
|
||||
ARCHITECTURE cond_signal OF decode3to8 IS
|
||||
|
||||
SIGNAL sel_bus : STD_LOGIC_VECTOR(2 DOWNTO 0); --this will group the inputs into one signal
|
||||
SIGNAL Y_bus : STD_LOGIC_VECTOR(7 DOWNTO 0); --this will create a vector for internal use
|
||||
|
||||
BEGIN
|
||||
|
||||
sel_bus <= s2 & s1 & s0; --order is important when concatenating
|
||||
|
||||
y0 <= Y_bus(0); --Y_bus is used internally to hold the output
|
||||
y1 <= Y_bus(1); --values and then assigned to the individual outputs
|
||||
y2 <= Y_bus(2);
|
||||
y3 <= Y_bus(3);
|
||||
y4 <= Y_bus(4);
|
||||
y5 <= Y_bus(5);
|
||||
y6 <= Y_bus(6);
|
||||
y7 <= Y_bus(7);
|
||||
|
||||
Y_bus <= "00000001" WHEN sel_bus = "000" ELSE
|
||||
"00000010" WHEN sel_bus = "001" ELSE
|
||||
"00000100" WHEN sel_bus = "010" ELSE
|
||||
"00001000" WHEN sel_bus = "011" ELSE
|
||||
"00010000" WHEN sel_bus = "100" ELSE
|
||||
"00100000" WHEN sel_bus = "101" ELSE
|
||||
"01000000" WHEN sel_bus = "110" ELSE
|
||||
"10000000";
|
||||
|
||||
END cond_signal;
|
||||
|
||||
--**************************************************************************************************
|
||||
--this architecture uses a Conditional signal assignment
|
||||
--It assigns all outputs individually
|
||||
|
||||
ARCHITECTURE cond_signal OF decode3to8 IS
|
||||
|
||||
SIGNAL sel_bus : STD_LOGIC_VECTOR(2 DOWNTO 0); --this will group the inputs into one signal
|
||||
|
||||
BEGIN
|
||||
|
||||
sel_bus <= s2 & s1 & s0; --order is important when concatenating
|
||||
|
||||
Y0 <= '1' WHEN sel_bus = "000" ELSE '0';
|
||||
Y1 <= '1' WHEN sel_bus = "001" ELSE '0';
|
||||
Y2 <= '1' WHEN sel_bus = "010" ELSE '0';
|
||||
Y3 <= '1' WHEN sel_bus = "011" ELSE '0';
|
||||
Y4 <= '1' WHEN sel_bus = "100" ELSE '0';
|
||||
Y5 <= '1' WHEN sel_bus = "101" ELSE '0';
|
||||
Y6 <= '1' WHEN sel_bus = "110" ELSE '0';
|
||||
Y7 <= '1' WHEN sel_bus = "111" ELSE '0';
|
||||
|
||||
END cond_signal;
|
||||
|
||||
--****************************************************************************************************
|
||||
--this architecture uses a selected signal assignment
|
||||
--It also uses an internal std_logic_vector signal to assign all of the outputs at once
|
||||
|
||||
ARCHITECTURE sel_signal OF decode3to8 IS
|
||||
|
||||
SIGNAL sel_bus : STD_LOGIC_VECTOR(2 DOWNTO 0); --this will group the inputs into one signal
|
||||
SIGNAL Y_bus : STD_LOGIC_VECTOR(7 DOWNTO 0); --this will create a vector for internal use
|
||||
|
||||
BEGIN
|
||||
|
||||
sel_bus <= s2 & s1 & s0; --order is important when concatenating
|
||||
|
||||
y0 <= Y_bus(0); --Y_bus is used internally to hold the output
|
||||
y1 <= Y_bus(1); --values and then assigned to the individual outputs
|
||||
y2 <= Y_bus(2);
|
||||
y3 <= Y_bus(3);
|
||||
y4 <= Y_bus(4);
|
||||
y5 <= Y_bus(5);
|
||||
y6 <= Y_bus(6);
|
||||
y7 <= Y_bus(7);
|
||||
|
||||
WITH sel_bus SELECT
|
||||
Y_bus <= "00000001" WHEN "000",
|
||||
"00000010" WHEN "001",
|
||||
"00000100" WHEN "010",
|
||||
"00001000" WHEN "011",
|
||||
"00010000" WHEN "100",
|
||||
"00100000" WHEN "101",
|
||||
"01000000" WHEN "110",
|
||||
"10000000" WHEN OTHERS;
|
||||
|
||||
END sel_signal;
|
||||
|
||||
--****************************************************************************************************
|
||||
--this architecture uses a selected signal assignment
|
||||
--It assigns all outputs individually
|
||||
|
||||
ARCHITECTURE sel_signal OF decode3to8 IS
|
||||
|
||||
SIGNAL sel_bus : STD_LOGIC_VECTOR(2 DOWNTO 0); --this will group the inputs into one signal
|
||||
|
||||
BEGIN
|
||||
|
||||
sel_bus <= s2 & s1 & s0; --order is important when concatenating
|
||||
|
||||
WITH sel_bus SELECT
|
||||
Y0 <= '1' WHEN "000",'0' WHEN OTHERS;
|
||||
WITH sel_bus SELECT --A WITH statement is required for each output
|
||||
Y1 <= '1' WHEN "001",'0' WHEN OTHERS;
|
||||
WITH sel_bus SELECT
|
||||
Y2 <= '1' WHEN "010",'0' WHEN OTHERS;
|
||||
WITH sel_bus SELECT
|
||||
Y3 <= '1' WHEN "011",'0' WHEN OTHERS;
|
||||
WITH sel_bus SELECT
|
||||
Y4 <= '1' WHEN "100",'0' WHEN OTHERS;
|
||||
WITH sel_bus SELECT
|
||||
Y5 <= '1' WHEN "101",'0' WHEN OTHERS;
|
||||
WITH sel_bus SELECT
|
||||
Y6 <= '1' WHEN "110",'0' WHEN OTHERS;
|
||||
WITH sel_bus SELECT
|
||||
Y7 <= '1' WHEN "111",'0' WHEN OTHERS;
|
||||
|
||||
END sel_signal;
|
||||
|
||||
--************************************************************************************************
|
||||
--this architecture uses a Case Statement
|
||||
--It also uses an internal std_logic_vector signal to assign all of the outputs at once
|
||||
|
||||
ARCHITECTURE case_arch OF decode3to8 IS
|
||||
|
||||
SIGNAL sel_bus : STD_LOGIC_VECTOR(2 DOWNTO 0); --this will group the inputs into one signal
|
||||
SIGNAL Y_bus : STD_LOGIC_VECTOR(7 DOWNTO 0); --this will create a vector for internal use
|
||||
|
||||
BEGIN
|
||||
|
||||
sel_bus <= s2 & s1 & s0; --order is important when concatenating
|
||||
|
||||
y0 <= Y_bus(0); --Y_bus is used internally to hold the output
|
||||
y1 <= Y_bus(1); --values and then assigned to the individual outputs
|
||||
y2 <= Y_bus(2);
|
||||
y3 <= Y_bus(3);
|
||||
y4 <= Y_bus(4);
|
||||
y5 <= Y_bus(5);
|
||||
y6 <= Y_bus(6);
|
||||
y7 <= Y_bus(7);
|
||||
|
||||
case1:PROCESS(sel_bus) --sel_bus is read in the process so needs to be in sensitivity list
|
||||
BEGIN
|
||||
CASE sel_bus IS
|
||||
WHEN "000" => y_bus <= "00000001";
|
||||
WHEN "001" => y_bus <= "00000010";
|
||||
WHEN "010" => y_bus <= "00000100";
|
||||
WHEN "011" => y_bus <= "00001000";
|
||||
WHEN "100" => y_bus <= "00010000";
|
||||
WHEN "101" => y_bus <= "00100000";
|
||||
WHEN "110" => y_bus <= "01000000";
|
||||
WHEN OTHERS => y_bus <="10000000";
|
||||
END CASE;
|
||||
END PROCESS;
|
||||
END case_arch;
|
||||
|
||||
--************************************************************************************************
|
||||
--this architecture uses a Case Statement
|
||||
--It aassigns each output individually
|
||||
|
||||
ARCHITECTURE case_arch OF decode3to8 IS
|
||||
|
||||
SIGNAL sel_bus : STD_LOGIC_VECTOR(2 DOWNTO 0); --this will group the inputs into one signal
|
||||
|
||||
BEGIN
|
||||
|
||||
sel_bus <= s2 & s1 & s0; --order is important when concatenating
|
||||
|
||||
case2:PROCESS(sel_bus)
|
||||
BEGIN
|
||||
y0 <= '0'; --make all inputs '0' to avoid creating a latch
|
||||
y1 <= '0';
|
||||
y2 <= '0';
|
||||
y3 <= '0';
|
||||
y4 <= '0';
|
||||
y5 <= '0';
|
||||
y6 <= '0';
|
||||
y7 <= '0';
|
||||
CASE sel_bus IS
|
||||
WHEN "000" => y0 <= '1'; --only the selected output is set to 1
|
||||
WHEN "001" => y1 <= '1'; --all others remain 0 from initial assignment
|
||||
WHEN "010" => y2 <= '1';
|
||||
WHEN "011" => y3 <= '1';
|
||||
WHEN "100" => y4 <= '1';
|
||||
WHEN "101" => y5 <= '1';
|
||||
WHEN "110" => y6 <= '1';
|
||||
WHEN OTHERS => y7 <='1';
|
||||
END CASE;
|
||||
END PROCESS;
|
||||
END case_arch;
|
||||
|
||||
--************************************************************************************************
|
||||
--this architecture uses an if/then/else Statement
|
||||
--It also uses an internal std_logic_vector signal to assign all of the outputs at once
|
||||
|
||||
ARCHITECTURE case_if OF decode3to8 IS
|
||||
|
||||
SIGNAL sel_bus : STD_LOGIC_VECTOR(2 DOWNTO 0); --this will group the inputs into one signal
|
||||
SIGNAL Y_bus : STD_LOGIC_VECTOR(7 DOWNTO 0); --this will create a vector for internal use
|
||||
|
||||
BEGIN
|
||||
|
||||
sel_bus <= s2 & s1 & s0; --order is important when concatenating
|
||||
|
||||
y0 <= Y_bus(0); --Y_bus is used internally to hold the output
|
||||
y1 <= Y_bus(1); --values and then assigned to the individual outputs
|
||||
y2 <= Y_bus(2);
|
||||
y3 <= Y_bus(3);
|
||||
y4 <= Y_bus(4);
|
||||
y5 <= Y_bus(5);
|
||||
y6 <= Y_bus(6);
|
||||
y7 <= Y_bus(7);
|
||||
|
||||
if1:PROCESS(sel_bus) --sel_bus is read in the process so needs to be in sensitivity list
|
||||
BEGIN
|
||||
IF sel_bus = "000" THEN --assign all outputs at once
|
||||
y_bus <= "00000001";
|
||||
ELSIF sel_bus = "001" THEN
|
||||
y_bus <= "00000010";
|
||||
ELSIF sel_bus = "010" THEN
|
||||
y_bus <= "00000100";
|
||||
ELSIF sel_bus = "011" THEN
|
||||
y_bus <= "00001000";
|
||||
ELSIF sel_bus = "100" THEN
|
||||
y_bus <= "00010000";
|
||||
ELSIF sel_bus ="101" THEN
|
||||
y_bus <= "00100000";
|
||||
ELSIF sel_bus = "110" THEN
|
||||
y_bus <= "01000000";
|
||||
ELSE
|
||||
y_bus <="10000000";
|
||||
END IF;
|
||||
END PROCESS;
|
||||
END case_if;
|
||||
|
||||
--************************************************************************************************
|
||||
--this architecture uses a if/then/else Statement
|
||||
--It aassigns each output individually
|
||||
|
||||
ARCHITECTURE if_arch OF decode3to8 IS
|
||||
|
||||
SIGNAL sel_bus : STD_LOGIC_VECTOR(2 DOWNTO 0); --this will group the inputs into one signal
|
||||
|
||||
BEGIN
|
||||
|
||||
sel_bus <= s2 & s1 & s0; --order is important when concatenating
|
||||
|
||||
if2:PROCESS(sel_bus)
|
||||
BEGIN
|
||||
y0 <= '0'; --make all inputs '0' to avoid creating a latch
|
||||
y1 <= '0';
|
||||
y2 <= '0';
|
||||
y3 <= '0';
|
||||
y4 <= '0';
|
||||
y5 <= '0';
|
||||
y6 <= '0';
|
||||
y7 <= '0';
|
||||
IF sel_bus = "000" THEN --assign only the selected output to 1
|
||||
y0 <= '1'; --all others remain 0
|
||||
ELSIF sel_bus = "001" THEN
|
||||
y1 <= '1';
|
||||
ELSIF sel_bus = "010" THEN
|
||||
y2 <= '1';
|
||||
ELSIF sel_bus = "011" THEN
|
||||
y3 <= '1';
|
||||
ELSIF sel_bus = "100" THEN
|
||||
y4 <= '1';
|
||||
ELSIF sel_bus ="101" THEN
|
||||
y5 <= '1';
|
||||
ELSIF sel_bus = "110" THEN
|
||||
y6 <= '1';
|
||||
ELSE
|
||||
y7 <= '1';
|
||||
END IF;
|
||||
END PROCESS;
|
||||
END if_arch;
|
121
week4/truthtable.vhd
Normal file
121
week4/truthtable.vhd
Normal file
|
@ -0,0 +1,121 @@
|
|||
LIBRARY IEEE;
|
||||
USE IEEE.STD_LOGIC_1164.ALL;
|
||||
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
|
||||
|
||||
--*************************************************************************************************
|
||||
--Please note that VHDL does not allow for multiple architectures in the same file.
|
||||
--This file will not compile.
|
||||
--It is meant to provide students with the multiple solutions to the same problem
|
||||
--************************************************************************************************
|
||||
|
||||
-- "/" represents an inversion
|
||||
-- The unsimplified SOP equation is : /A/B/C + A/B/C + A/BC
|
||||
-- The simplified equation is: /B/C OR A/B
|
||||
|
||||
-- /C | C
|
||||
-- _________|_____
|
||||
-- | | |&
|
||||
--/A/B | 1 | 0 A ----------------|&
|
||||
-- ___|_____|_____ ____|&____
|
||||
-- | | | |& |
|
||||
--/AB | 0 | 0 |\ | |___|OR
|
||||
-- ___|_____|_____ B ------| o---| |OR____f4
|
||||
-- | | |/ | ___|OR
|
||||
-- AB | 0 | 0 |___|& | |OR
|
||||
-- ___|_____|_____ |\ |&____|
|
||||
-- | | C ------| o-------|&
|
||||
--A/B | 1 | 1 |/ |&
|
||||
-- | |
|
||||
--
|
||||
ENTITY truthtable IS
|
||||
PORT(a, b, c : IN STD_LOGIC;
|
||||
f4 : OUT STD_LOGIC);
|
||||
END truthtable;
|
||||
|
||||
--************************************************************************************************
|
||||
--This architecture uses AOI gate statements
|
||||
|
||||
ARCHITECTURE AOI OF truthtable IS
|
||||
BEGIN
|
||||
|
||||
f4 <= ((NOT b) AND (NOT c)) OR (a AND (NOT b));
|
||||
|
||||
END AOI;
|
||||
|
||||
--**************************************************************************************************
|
||||
--This architecture uses a Conditional signal assignment
|
||||
|
||||
ARCHITECTURE cond_signal OF truthtable IS
|
||||
|
||||
SIGNAL inputs :STD_LOGIC_VECTOR(2 DOWNTO 0); --this will group the inputs into one vector
|
||||
|
||||
BEGIN
|
||||
|
||||
inputs <= a & b & c; --order is important when concatenating
|
||||
f4 <= '1' WHEN inputs = "000" OR inputs = "100" OR inputs = "101" ELSE '0';
|
||||
|
||||
|
||||
END cond_signal;
|
||||
|
||||
--****************************************************************************************************
|
||||
--This architecture uses a selected signal assignment
|
||||
|
||||
ARCHITECTURE sel_signal OF truthtable IS
|
||||
|
||||
SIGNAL inputs :STD_LOGIC_VECTOR(2 DOWNTO 0); --this will group the inputs into one vector
|
||||
|
||||
BEGIN
|
||||
|
||||
inputs <= a & b & c; --order is important when concatenating
|
||||
|
||||
WITH inputs SELECT
|
||||
f4 <= '1' WHEN "000" | "100" | "101",
|
||||
'0' WHEN OTHERS;
|
||||
|
||||
END sel_signal;
|
||||
--
|
||||
--****************************************************************************************************
|
||||
--This architecture uses a case statement
|
||||
--
|
||||
ARCHITECTURE case_statement OF truthtable IS
|
||||
|
||||
SIGNAL inputs :STD_LOGIC_VECTOR(2 DOWNTO 0); --this will group the inputs into one vector
|
||||
|
||||
BEGIN
|
||||
|
||||
inputs <= a & b & c; --order is important when concatenating
|
||||
|
||||
case_proc: PROCESS(inputs) IS
|
||||
BEGIN
|
||||
CASE inputs IS
|
||||
WHEN "000" | "100" | "101" => f4 <= '1';
|
||||
WHEN OTHERS => f4 <= '0';
|
||||
END CASE;
|
||||
END PROCESS;
|
||||
|
||||
END case_statement;
|
||||
|
||||
--****************************************************************************************************
|
||||
--This architecture uses a if statement
|
||||
|
||||
ARCHITECTURE if_statement OF truthtable IS
|
||||
|
||||
SIGNAL inputs :STD_LOGIC_VECTOR(2 DOWNTO 0); --this will group the inputs into one vector
|
||||
|
||||
BEGIN
|
||||
|
||||
inputs <= a & b & c; --order is important when concatenating
|
||||
|
||||
if_proc: PROCESS(inputs) IS
|
||||
BEGIN
|
||||
IF (inputs = "000") OR (inputs ="100") THEN -- You can have multiple conditions on the same line
|
||||
f4 <= '1';
|
||||
ELSIF (inputs = "101") THEN -- Or use ELSIF to split them up
|
||||
f4 <= '1';
|
||||
ELSE
|
||||
f4 <= '0';
|
||||
END IF;
|
||||
END PROCESS;
|
||||
|
||||
END if_statement;
|
||||
|
BIN
week5/7 VHDL Arithmetic and ALU.pdf
Normal file
BIN
week5/7 VHDL Arithmetic and ALU.pdf
Normal file
Binary file not shown.
BIN
week5/HW5.pdf
Normal file
BIN
week5/HW5.pdf
Normal file
Binary file not shown.
BIN
week5/Number systems.pdf
Normal file
BIN
week5/Number systems.pdf
Normal file
Binary file not shown.
BIN
week5/Study Topics Exam1.pdf
Normal file
BIN
week5/Study Topics Exam1.pdf
Normal file
Binary file not shown.
BIN
week5/mux4to1.pdf
Normal file
BIN
week5/mux4to1.pdf
Normal file
Binary file not shown.
BIN
week6/8 Revisiting Important VHDL Concepts.pdf
Normal file
BIN
week6/8 Revisiting Important VHDL Concepts.pdf
Normal file
Binary file not shown.
BIN
week6/9 Hierarchical Design.pdf
Normal file
BIN
week6/9 Hierarchical Design.pdf
Normal file
Binary file not shown.
BIN
week6/HW6.pdf
Normal file
BIN
week6/HW6.pdf
Normal file
Binary file not shown.
BIN
week6/TeammateEvaluationForm.docx
Normal file
BIN
week6/TeammateEvaluationForm.docx
Normal file
Binary file not shown.
BIN
week7/10 MSI in VHDL.pdf
Normal file
BIN
week7/10 MSI in VHDL.pdf
Normal file
Binary file not shown.
BIN
week7/9.5 Hierarchical Design II.pdf
Normal file
BIN
week7/9.5 Hierarchical Design II.pdf
Normal file
Binary file not shown.
BIN
week7/HW7.pdf
Normal file
BIN
week7/HW7.pdf
Normal file
Binary file not shown.
89
week7/hexdisplay_tb.vhd
Normal file
89
week7/hexdisplay_tb.vhd
Normal file
|
@ -0,0 +1,89 @@
|
|||
--*****************************************************************************
|
||||
--*************************** VHDL Source Code ******************************
|
||||
--********* Copyright 2017, Rochester Institute of Technology ***************
|
||||
--*****************************************************************************
|
||||
--
|
||||
-- DESIGNER NAME: Jeanne Christman
|
||||
--
|
||||
-- FILE NAME: hexdisplay_tb.vhd
|
||||
--
|
||||
-------------------------------------------------------------------------------
|
||||
--
|
||||
-- DESCRIPTION
|
||||
--
|
||||
-- This test bench will provide input to test an eight bit binary to
|
||||
-- seven-segment display driver. The input is an 8-bit binary number.
|
||||
-- There are two outputs which go to the 7-segment displays to display the
|
||||
-- hexadecimal equivalence of the 8-bit binary number.
|
||||
--
|
||||
-------------------------------------------------------------------------------
|
||||
--
|
||||
-- REVISION HISTORY
|
||||
--
|
||||
-- _______________________________________________________________________
|
||||
-- | DATE | USER | Ver | Description |
|
||||
-- |==========+======+=====+================================================
|
||||
-- | | | |
|
||||
-- | 10/10/17 | JWC | 1.0 | Created
|
||||
-- | | | |
|
||||
--
|
||||
--*****************************************************************************
|
||||
--*****************************************************************************
|
||||
|
||||
LIBRARY IEEE;
|
||||
USE ieee.std_logic_1164.ALL;
|
||||
USE ieee.numeric_std.ALL;
|
||||
|
||||
ENTITY hexdisplay_tb IS
|
||||
END ENTITY hexdisplay_tb;
|
||||
|
||||
ARCHITECTURE test OF hexdisplay_tb IS
|
||||
|
||||
--the component name MUST match the entity name of the VHDL module being tested
|
||||
COMPONENT hexdisplay
|
||||
PORT ( In_num : in STD_LOGIC_VECTOR(7 downto 0); --8-bit input
|
||||
HEX0,HEX1 : out STD_LOGIC_VECTOR(6 downto 0)); --ssd outputs
|
||||
END COMPONENT;
|
||||
|
||||
-- testbench signals. These do not need to be modified
|
||||
SIGNAL In_num_tb : std_logic_vector(7 DOWNTO 0);
|
||||
--
|
||||
SIGNAL HEX0_tb : std_logic_vector(6 DOWNTO 0);
|
||||
SIGNAL HEX1_tb : std_logic_vector(6 DOWNTO 0);
|
||||
|
||||
BEGIN
|
||||
--this must match component above
|
||||
UUT : hexdisplay PORT MAP (
|
||||
In_num => In_num_tb,
|
||||
|
||||
HEX0 => HEX0_tb,
|
||||
HEX1 => HEX1_tb
|
||||
);
|
||||
|
||||
---------------------------------------------------------------------------
|
||||
-- NAME: Stimulus
|
||||
--
|
||||
-- DESCRIPTION:
|
||||
-- This process will apply the stimulus to the UUT
|
||||
---------------------------------------------------------------------------
|
||||
Stimulus: Process
|
||||
BEGIN
|
||||
-- create a loop to run through all the combinations of R
|
||||
FOR j IN 0 TO 255 LOOP
|
||||
-- Assign the R input value
|
||||
In_num_tb <= STD_LOGIC_VECTOR(to_unsigned(j,8));
|
||||
wait for 10 ns;
|
||||
End loop;
|
||||
|
||||
Report LF& "**************************" &LF&
|
||||
"Simulation Complete" &LF&
|
||||
"**************************" SEVERITY NOTE;
|
||||
-----------------------------------------------------------------------
|
||||
-- This last WAIT statement needs to be here to prevent the PROCESS
|
||||
-- sequence from restarting.
|
||||
-----------------------------------------------------------------------
|
||||
WAIT;
|
||||
END PROCESS stimulus;
|
||||
|
||||
|
||||
END ARCHITECTURE test;
|
21
week7/wave.do
Normal file
21
week7/wave.do
Normal file
|
@ -0,0 +1,21 @@
|
|||
radix define radix_ssd {
|
||||
"7'b1000000" "0" -color "yellow",
|
||||
"7'b1111001" "1" -color "yellow",
|
||||
"7'b0100100" "2" -color "yellow",
|
||||
"7'b0110000" "3" -color "yellow",
|
||||
"7'b0011001" "4" -color "yellow",
|
||||
"7'b0010010" "5" -color "yellow",
|
||||
"7'b0000010" "6" -color "yellow",
|
||||
"7'b1111000" "7" -color "yellow",
|
||||
"7'b0000000" "8" -color "yellow",
|
||||
"7'b0010000" "9" -color "yellow",
|
||||
"7'b0001000" "A" -color "yellow",
|
||||
"7'b0000011" "B" -color "yellow",
|
||||
"7'b1000110" "C" -color "yellow",
|
||||
"7'b0100001" "D" -color "yellow",
|
||||
"7'b0000110" "E" -color "yellow",
|
||||
"7'b0001110" "F" -color "yellow",
|
||||
"7'b0111111" "dash" -color "yellow",
|
||||
"7'b1111111" "blank" -color "yellow",
|
||||
-default hexadecimal
|
||||
}
|
BIN
week8/10.5 Exam 2 practice.pdf
Normal file
BIN
week8/10.5 Exam 2 practice.pdf
Normal file
Binary file not shown.
BIN
week8/Exam 2 Practice problem solutions.pdf
Normal file
BIN
week8/Exam 2 Practice problem solutions.pdf
Normal file
Binary file not shown.
BIN
week8/Study Topics Exam2.pdf
Normal file
BIN
week8/Study Topics Exam2.pdf
Normal file
Binary file not shown.
BIN
week9/11 Synchronous VHDL and DFF.pdf
Normal file
BIN
week9/11 Synchronous VHDL and DFF.pdf
Normal file
Binary file not shown.
BIN
week9/HW8.pdf
Normal file
BIN
week9/HW8.pdf
Normal file
Binary file not shown.
Loading…
Add table
Reference in a new issue