Handout #1: The Xilinx ISE Project Navigator

Size: px
Start display at page:

Download "Handout #1: The Xilinx ISE Project Navigator"

Transcription

1 Computer Structure lab Handout #1: The Xilinx ISE Project Navigator The assignment in this lab is to practice design entry (schematic and HDL) and simulation using the Project Navigator. First part of the design is fully given to you. The second part requires new design with similar specifications. In order to be prepared for the lab please read the tutorial of the Xilinx ISE Foundation software under the link of the lab. 1.1 Important links: 1. The following link contains explanation about the FPGA chip we are going to work on: Detailed Instructions: Part I The simple project decoder presented in the introductory meeting is given to you. You may view it in order to see what your design should look. Start the design manager and open the project. The project consists of a three specific sources, created using VHDL: the Random generator, the Comparator and the 12 bit wide Binary Counter. Also, in the project are used the Xilinx standard sources of 4 and 8 bit Register, D Flip Flop and OR2 gate. Top level of the design is defined as schematic type. Part of the project is the Test Bench file, which describes the simulator environment definitions (input and output signals and their waveforms). Start the ISE simulator using the given file. Check the performed simulation; add more signals to waveforms for observation. At the end create new project, like or very similar to the one that was given to you.

2 1.2.2 Part II Create a new project with the following properties: Family: Spartan 6, Device: XC6SLX25, Package: FTG256, Speed:-2, Top-Level: Schematic, Synthesis Tool: XST, Simulator: ISE (VHDL, Verilog), Preferred Language: VHDL. Implement the following design: Inputs: clk, go, reset Outputs: RA[3:0], RB[3:0] Hardware: counters, registers; control logic Functionality: your design should include two counters and two registers. Design the counters using VHDL. First is 4-bit negative counter named POINTER, second a 16-bit positive counter named INFO. Notice that a positive counter should start at 0 and count upwards, while a negative counter starts at F and counts downwards. signal initiates the counters, but they begin and count only when signal GO is presented. Your design should include two 4-bit registers. Use the registers from the Xilinx library of standard sources. They sample the data from the counter INFO as follows: REGA sample INFO [5:2] whenever the number represented by POINTER [3:0] is smaller than 8 and REGB should sample INFO [9:6] whenever the number represented by POINTER [3:0] is larger then 7. Design s outputs are the registers outputs, presented as a buses. Create VHDL Test Bench file with the following parameters: Clk = 100/100 ns. Propagation Delay time = 2ns. Assert RESET at the beginning as positive pulse for at list 2 clock periods. After that the GO signal number goes high for number of pulses that is enough to observe correctness of the data sampled by the registers. Check the reaction when RESET is asserted in the middle of the simulation. Simulate your design using ISE. 1.3 Lab assignment: Please do not submit your work Consult the correctness of your design with the Instructor.

3 Random_gen A A CLK RST clk Ran_val(7:0) rst Comparator VCC CNT_12 ce A(7:0) A_eq_B rst B(7:0) RST OR2 CLK clk cnt(11:0) Step_num(11:0) NUT(7:0) CLK FD8RE Pos(11:0) Step_num(7:0) D[7:0] Q[7:0] Pos(7:0) CE B B CLK C R RST FD4RE Step_num(8) D0 Q0 Pos(8) Step_num(9) D1 Q1 Pos(9) C C Step_num(10) D2 Q2 Pos(10) Step_num(11) D3 Q3 Pos(11) CE CLK C RST R FD D Q D D Done CLK C

4 Random_gen.vhd Mon Jul 06 15:40: Company: 3 -- Engineer: Create Date: 10:35:45 07/01/ Design Name: 7 -- Module Name: Random_gen - Behavioral 8 -- Project Name: 9 -- Target Devices: Tool versions: Description: Dependencies: Revision: Revision File Created Additional Comments: library IEEE; 21 use IEEE.STD_LOGIC_1164.ALL; Uncomment the following library declaration if using arithmetic functions with Signed or Unsigned values 25 --use IEEE.NUMERIC_STD.ALL; Uncomment the following library declaration if instantiating any Xilinx primitives in this code library UNISIM; 30 --use UNISIM.VComponents.all; entity Random_gen is 33 Port ( clk : in STD_LOGIC; 34 rst : in STD_LOGIC; 35 Ran_val : out STD_LOGIC_VECTOR (7 downto 0)); 36 end Random_gen; architecture Behavioral of Random_gen is constant in_val : std_logic_vector(31 downto 0):= X"1badc0de"; 41 signal Rk_val : std_logic_vector(31 downto 0); begin Process (clk,rst) 46 begin if clk'event and clk = '1' then 50 if rst = '1' then Rk_val <= in_val; 51 else Rk_val(31) <= Rk_val(13) xor Rk_val(14) xor Rk_val( 15) xor Rk_val(18); 52 Rk_val(30 downto 0) <= Rk_val(31 downto 1); 53 end if; 54 end if; 55 end process; 56 Page 1

5 Random_gen.vhd Mon Jul 06 15:40: Ran_val <= Rk_val(31 downto 24); end Behavioral; Page 2

6 Comparator.vhd Mon Jul 06 15:41: Company: 3 -- Engineer: Create Date: 14:05:06 07/05/ Design Name: 7 -- Module Name: Comparator - Behavioral 8 -- Project Name: 9 -- Target Devices: Tool versions: Description: Dependencies: Revision: Revision File Created Additional Comments: library IEEE; 21 use IEEE.STD_LOGIC_1164.ALL; Uncomment the following library declaration if using arithmetic functions with Signed or Unsigned values 25 --use IEEE.NUMERIC_STD.ALL; Uncomment the following library declaration if instantiating any Xilinx primitives in this code library UNISIM; 30 --use UNISIM.VComponents.all; entity Comparator is 33 Port ( A : in STD_LOGIC_VECTOR (7 downto 0); 34 B : in STD_LOGIC_VECTOR (7 downto 0); 35 A_eq_B : out STD_LOGIC); 36 end Comparator; architecture Behavioral of Comparator is begin A_eq_B <= '1' when (A = B) else '0'; end Behavioral; Page 1

7 CNT_12.vhd Mon Jul 06 15:42: library IEEE; 2 use IEEE.STD_LOGIC_1164.ALL; 3 use IEEE.STD_LOGIC_ARITH.ALL; 4 use IEEE.STD_LOGIC_UNSIGNED.ALL; Uncomment the following lines to use the declarations that are 7 -- provided for instantiating Xilinx primitive components. 8 --library UNISIM; 9 --use UNISIM.VComponents.all; entity CNT_12 is 12 Port ( clk : in std_logic; 13 ce : in std_logic; 14 rst : in std_logic; 15 cnt : out std_logic_vector(11 downto 0)); 16 end CNT_12; architecture Behavioral of CNT_12 is 19 signal cnt_s: std_logic_vector(11 downto 0); 20 begin process(clk,ce) begin if (clk'event and clk = '1') then 27 if (rst = '1') then cnt_s <= X"000"; 28 elsif (ce = '0') then cnt_s <= cnt_s; 29 else cnt_s <= cnt_s + 1; end if; 32 end if; 33 end process; cnt <= cnt_s; end Behavioral; 40 Page 1

8 RND_t.vhd Mon Jul 06 15:50: Vhdl test bench created from schematic D:\a_dlx10\aa\decoder_v14\Ran_Num_Dec.sch - Sun Jul 05 14:28: Notes: ) This testbench template has been automatically generated using types 5 -- std_logic and std_logic_vector for the ports of the unit under test Xilinx recommends that these types always be used for the top-level 7 -- I/O of a design in order to guarantee that the testbench will bind 8 -- correctly to the timing (post-route) simulation model ) To use this template as your testbench, change the filename to any name of your choice with the extension.vhd, and use the "Source->Add" menu in Project Navigator to import the testbench. Then edit the user defined section below, adding code to generate the stimulus for your design LIBRARY ieee; 16 USE ieee.std_logic_1164.all; 17 USE ieee.numeric_std.all; 18 LIBRARY UNISIM; 19 USE UNISIM.Vcomponents.ALL; 20 ENTITY Ran_Num_Dec_Ran_Num_Dec_sch_tb IS 21 END Ran_Num_Dec_Ran_Num_Dec_sch_tb; 22 ARCHITECTURE behavioral OF Ran_Num_Dec_Ran_Num_Dec_sch_tb IS COMPONENT Ran_Num_Dec 25 PORT( NUT : IN STD_LOGIC_VECTOR (7 DOWNTO 0); 26 CLK : IN STD_LOGIC; 27 RST : IN STD_LOGIC; 28 Pos : OUT STD_LOGIC_VECTOR (11 DOWNTO 0); 29 Done : OUT STD_LOGIC); 30 END COMPONENT; SIGNAL NUT : STD_LOGIC_VECTOR (7 DOWNTO 0); 33 SIGNAL CLK : STD_LOGIC; 34 SIGNAL RST : STD_LOGIC; 35 SIGNAL Pos : STD_LOGIC_VECTOR (11 DOWNTO 0); 36 SIGNAL Done : STD_LOGIC; BEGIN UUT: Ran_Num_Dec PORT MAP( 41 NUT => NUT, 42 CLK => CLK, 43 RST => RST, 44 Pos => Pos, 45 Done => Done 46 ); *** Test Bench - User Defined Section *** 49 CLK_process :process 50 begin 51 CLK <= '1'; 52 wait for 100 ns; 53 CLK <= '0'; 54 wait for 100 ns; 55 end process; 56 Page 1

9 RND_t.vhd Mon Jul 06 15:50: tb : PROCESS 58 BEGIN 59 NUT <= X"23"; 60 RST <= '1'; 61 wait for 202 ns; 62 RST <= '0'; 63 wait for 10*200 ns; 64 WAIT; -- will wait forever 65 END PROCESS; *** End Test Bench - User Defined Section *** END; 69 Page 2

10

11

12 Ran_Dec_All.vhd Mon Jul 06 15:42: Company: 3 -- Engineer: Create Date: 15:12:00 07/06/ Design Name: 7 -- Module Name: Ran_Dec_All - Behavioral 8 -- Project Name: 9 -- Target Devices: Tool versions: Description: Dependencies: Revision: Revision File Created Additional Comments: library IEEE; 21 use IEEE.STD_LOGIC_1164.ALL; 22 use IEEE.STD_LOGIC_ARITH.ALL; 23 use IEEE.STD_LOGIC_UNSIGNED.ALL; Uncomment the following library declaration if using arithmetic functions with Signed or Unsigned values 27 --use IEEE.NUMERIC_STD.ALL; Uncomment the following library declaration if instantiating any Xilinx primitives in this code library UNISIM; 32 --use UNISIM.VComponents.all; entity Ran_Dec_All is 35 Port ( clk : in STD_LOGIC; 36 rst : in STD_LOGIC; 37 NUT : in STD_LOGIC_VECTOR (7 downto 0); 38 done : out STD_LOGIC; 39 Pos : out STD_LOGIC_VECTOR (11 downto 0)); 40 end Ran_Dec_All; architecture Behavioral of Ran_Dec_All is constant in_val : std_logic_vector(31 downto 0):= X"1badc0de"; 45 signal Rk_val : std_logic_vector(31 downto 0); 46 signal Ran_val : std_logic_vector(7 downto 0); 47 signal cnt_s : std_logic_vector(11 downto 0); begin Randum_Generator :Process (clk,rst) 53 begin if clk'event and clk = '1' then 57 if rst = '1' then Rk_val <= in_val; Page 1

13 Ran_Dec_All.vhd Mon Jul 06 15:42: else Rk_val(31) <= Rk_val(13) xor Rk_val(14) xor Rk_val( 15) xor Rk_val(18); 59 Rk_val(30 downto 0) <= Rk_val(31 downto 1); 60 end if; 61 end if; 62 end process; Ran_val <= Rk_val(31 downto 24); Step_Counter:process(clk,Ran_Val,NUT) begin if (clk'event and clk = '1') then 71 if (rst = '1' or Ran_Val = NUT) then cnt_s <= X"000"; 72 else cnt_s <= cnt_s + 1; end if; 75 end if; 76 end process; Position:process(clk,Ran_Val,NUT) 79 begin if (clk'event and clk = '1') then 82 if (rst = '1') then Pos <= X"000"; 83 done <= '0'; 84 elsif (Ran_Val = NUT) then Pos <= cnt_s; 85 done <= '1'; 86 else done <= '0'; 87 end if; 88 end if; 89 end process; end Behavioral; Page 2

14 Computer Structure lab Handout #2: The RESA-2 s Parallel Bus Consider a CPU that wants to communicate over the RESA bus as a master device. The CPU is connected to the RESA bus via a simple bus interface. The simple bus interface is placed on the FPGA between the CPU and to the RESA- bus. Communication between the CPU and the bus interface is implemented by 3 registers and 3 control signals. The functionality of the registers is as follows: R_DI: a data-in register through which data is fed to the CPU R_DO: a data-out register through which data is sent from the CPU R_AD: an address-out register through which address is sent from the CPU The control signals are as follows: rd_req: the signal is sent by the CPU to the bus interface. This signal indicates that the CPU wishes to initiate a read transaction. wd_req: the signal is sent by the CPU to the bus interface. This signal indicates that the CPU wishes to initiate a write transaction. busy: the signal is sent by the CPU to the bus interface. This signal indicates that an instruction (e.g., read, write, read after write) is being executed. done: the signal is sent by the bus interface to the CPU. This signal indicates the completion of a transaction. For example, a read transaction is implemented as follows: When the CPU wishes to read data from a slave, start of the instruction is indicated with the busy signal set to 1. The CPU also, for one clock cycle, sets the address (combined addresses of the slave and the data item) to the bus interface and the rd_req signal to 1. The bus interface, handles the request, and initiates a read transaction over the RESA bus. When data is fetched, it is stored by the bus interface in the data-in register R_DI, and the done signal is set to 1 for one clock cycle. The CPU indicates end of the instruction with the busy signal set to 0.

15 2.1 Pre-Lab Assignment 1. Describe how a write transaction takes place. 2. Draw the data path, registers and drivers of the bus interface. 3. Design the control logic of the bus interface. Write the equations for: register clock enable signals, the output enable signals of drivers and all the RESA bus signals. 4. Draw the timing diagram of all the signals described above in the bus interface for read transaction and write transaction 2.2 Lab Assignment Project Buses is in your Lab working directory and contains 3 symbols: a CPU, a Slave and Bus Interface. The CPU initiates read or write transactions to the Slave, depending on the input control signal INSTR. The Bus Interface source is empty and your task is to design it. 1. Design the Bus Interface symbol (design entry). Submit a printout of your schematics and VHDL designs. 2. Simulate the project Buses using a ready Buses_t.vhd file with the following input waveforms: clk with 100/100 ns period, propagation delay of 2 ns, reset active high during the first two clock periods, step_en single pulse for a period of 2000(4000) ns, Before the simulation constant OPERATION have to be set with value of the desired operation. 3. Submit a printout of your simulation for a 'read', 'write' and 'read after write' instructions, including address, data and all bus, register and buffer control signals.

16 A A B B C C D D cpu RESET CLK step_en DONE DI(31:0) busy rd_req wr_req sts(3:0) READD(31:0) DO(31:0) AO(31:0) R_instr W_instr bus_inf AO(31:0) DO(31:0) rd_req wr_req ACK_N D(31:0) A(31:0) DI(31:0) DONE WR_N AS_N busy in_init CLK RESET READD(31:0) STS(3:0) step_en SLAVE slave_set clk WR_N AS_N A(31:0) D(31:0) ACK_N in_init R_instr W_instr

17 cpu.vhd Wed Jul 04 09:39: library IEEE; 2 use IEEE.STD_LOGIC_1164.ALL; 3 use IEEE.STD_LOGIC_ARITH.ALL; 4 use IEEE.STD_LOGIC_UNSIGNED.ALL; Uncomment the following lines to use the declarations that are 7 -- provided for instantiating Xilinx primitive components. 8 --library UNISIM; 9 --use UNISIM.VComponents.all; entity cpu is Port ( RESET : in std_logic; 15 CLK : in std_logic; 16 step_en : in std_logic; 17 R_instr : in std_logic; 18 W_instr : in std_logic; 19 sts : out std_logic_vector(3 downto 0); 20 READD: out std_logic_vector(31 downto 0); 21 DI : in std_logic_vector(31 downto 0); 22 DO : out std_logic_vector(31 downto 0); 23 AO : out std_logic_vector(31 downto 0); 24 busy : out std_logic; 25 rd_req : out std_logic; 26 wr_req : out std_logic; 27 DONE : in std_logic); 28 end cpu; architecture Behavioral of cpu is signal state:std_logic_vector(3 downto 0); 34 signal adrw:std_logic_vector(4 downto 0); --write adr 35 signal adrr:std_logic_vector(4 downto 0); --read adr signal SDO:std_logic_vector(31 downto 0); 38 signal SAO:std_logic_vector(31 downto 0); constant start: std_logic_vector(3 downto 0):="0000"; 41 constant read1: std_logic_vector(3 downto 0):="1011"; 42 constant read2: std_logic_vector(3 downto 0):="1100"; 43 constant read3: std_logic_vector(3 downto 0):="1101"; 44 constant write1: std_logic_vector(3 downto 0):="0001"; 45 constant write2: std_logic_vector(3 downto 0):="0010"; 46 constant write3: std_logic_vector(3 downto 0):="0011"; 47 constant waitre: std_logic_vector(3 downto 0):="1010"; 48 --constant wait3: std_logic_vector(3 downto 0):="1000"; 49 --constant wait4: std_logic_vector(3 downto 0):="1001"; begin 52 process(clk) 53 begin 54 if RESET = '1' then state <= start; 57 adrw <= "00001"; Page 1

18 cpu.vhd Wed Jul 04 09:39: adrr <= "00001"; 59 SDO<= X" "; 60 READD <= X" "; elsif clk'event and (clk = '1') then case state is 65 when start => 66 If(step_en = '0') then state <= start; 67 else 68 If (W_instr = '1') then 69 state <= write1; 70 SAO <= " " & adrw; 71 adrw <=adrw+2; elsif (R_instr = '1') then 74 state <= read1; 75 SAO <= " " & adrr; 76 adrr <= adrr+2; 77 else state <= start; end if; 80 end if; when read1 => state <= read2; 83 when read2 => 84 if (done = '1') then state <= read3;readd <= DI; 85 else state <= read2; 86 end if; 87 when read3 => state <= start; 88 --adrr <=adrr+3; when write1 => state <= write2; 92 when write2 => 93 if (done = '1')then state <= write3; 94 else state <= write2; 95 end if; 96 when write3 => 97 SDO <= SDO + 70; 98 If (R_instr = '0') then state <= start; 99 else state <= waitre; 100 end if; 101 when waitre => state <= read1; when others => null; 104 end case; end if; end process; rd_req <= '1' when state = read1 else '0'; 114 wr_req <= '1' when state = write1 else '0'; Page 2

19 cpu.vhd Wed Jul 04 09:39: AO <= SAO when (state = read1 or state = write1) 118 else "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"; 119 DO <= SDO when state = write1 120 else "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"; 121 busy <= '0' when state = start else '1'; 122 sts <= state; 123 end Behavioral; 124 Page 3

20 WR_N clk clk DO(31:0) RD(31:0) we INV A A DI(31:0) D(31:0) ram_set E BUFE16 RD(15:0) D(15:0) E BUFE16 AI(20:0) ADD(20:0) clk buf32 RD(31:16) D(31:16) A(31:0) INN(31:0) OUTT(31:0) AI(31:0) ACK_N AND2B1 in_init AS_N AI(25) FD ACK_N OR2 AI(24) D Q INV AI(23) NAND2B1 AI(22) C D Q B B AI(21) OR6 clk C FD FDC FDC FDC FDC D Q D Q D Q D Q clk OR2 C C C C C C CLR CLR CLR CLR WR_N OR2 AND2 AND2 ACK_N INV FTC FTC T Q T Q D AND2 D C C CLR CLR clk GND

21 bufe16.vhd Wed Jul 04 09:42: Company: 3 -- Engineer: Create Date: 11:12:31 07/03/ Design Name: 7 -- Module Name: bufe16 - Behavioral 8 -- Project Name: 9 -- Target Devices: Tool versions: Description: Dependencies: Revision: Revision File Created Additional Comments: library IEEE; 21 use IEEE.STD_LOGIC_1164.ALL; Uncomment the following library declaration if using arithmetic functions with Signed or Unsigned values 25 --use IEEE.NUMERIC_STD.ALL; Uncomment the following library declaration if instantiating any Xilinx primitives in this code library UNISIM; 30 --use UNISIM.VComponents.all; entity bufe16 is 33 Port ( Enable : in STD_LOGIC; 34 D_IN : in STD_LOGIC_VECTOR (15 downto 0); 35 D_OUT : out STD_LOGIC_VECTOR (15 downto 0)); 36 end bufe16; architecture Behavioral of bufe16 is begin D_OUT <= D_IN when (Enable = '1') else "ZZZZZZZZZZZZZZZZ"; end Behavioral; Page 1

22 buses_t.vhd Wed Jul 04 09:47: Vhdl test bench created from schematic D:\projects\a_dlx\buses\logic_set.sch - Tue Jul 03 16:29: Notes: ) This testbench template has been automatically generated using types 5 -- std_logic and std_logic_vector for the ports of the unit under test Xilinx recommends that these types always be used for the top-level 7 -- I/O of a design in order to guarantee that the testbench will bind 8 -- correctly to the timing (post-route) simulation model ) To use this template as your testbench, change the filename to any name of your choice with the extension.vhd, and use the "Source->Add" menu in Project Navigator to import the testbench. Then edit the user defined section below, adding code to generate the stimulus for your design LIBRARY ieee; 16 USE ieee.std_logic_1164.all; 17 USE ieee.numeric_std.all; 18 LIBRARY UNISIM; 19 USE UNISIM.Vcomponents.ALL; 20 ENTITY logic_set_logic_set_sch_tb IS 21 END logic_set_logic_set_sch_tb; 22 ARCHITECTURE behavioral OF logic_set_logic_set_sch_tb IS COMPONENT logic_set 25 PORT( RESET : IN STD_LOGIC; 26 READD : OUT STD_LOGIC_VECTOR (31 DOWNTO 0); 27 STS : OUT STD_LOGIC_VECTOR (3 DOWNTO 0); 28 CLK : IN STD_LOGIC; 29 step_en : IN STD_LOGIC; 30 W_instr : IN STD_LOGIC; 31 R_instr : IN STD_LOGIC); 32 END COMPONENT; SIGNAL RESET : STD_LOGIC; 35 SIGNAL READD : STD_LOGIC_VECTOR (31 DOWNTO 0); 36 SIGNAL STS : STD_LOGIC_VECTOR (3 DOWNTO 0); 37 SIGNAL CLK : STD_LOGIC; 38 SIGNAL step_en : STD_LOGIC; 39 SIGNAL W_instr : STD_LOGIC; 40 SIGNAL R_instr : STD_LOGIC; signal temp : std_logic := '0'; 43 CONSTANT OPERATION : STD_LOGIC_VECTOR (1 DOWNTO 0) := "01" ; set value of the constant OPERATION to define the desired transaction: : NO OPERATION, 01: READ, 10: WRITE, 11 READ AFTER WRITE 46 BEGIN UUT: logic_set PORT MAP( 49 RESET => RESET, 50 READD => READD, 51 STS => STS, 52 CLK => CLK, 53 step_en => step_en, 54 W_instr => W_instr, 55 R_instr => R_instr 56 ); Page 1

23 buses_t.vhd Wed Jul 04 09:47: *** Test Bench - User Defined Section *** 59 CLK_process :process 60 begin 61 CLK <= '1'; 62 wait for 100 ns; 63 CLK <= '0'; 64 wait for 100 ns; 65 end process; tb : PROCESS 69 BEGIN 70 IF temp = '0' then 71 R_instr <= OPERATION(0); 72 W_instr <= OPERATION(1); 73 step_en <= '0'; 74 RESET <= '1'; 75 temp <= '1'; 76 WAIT for 2ns; 77 WAIT for 200 ns; 78 else 79 step_en <= '1'; 80 RESET <= '0'; 81 WAIT for 200 ns; 82 step_en <= '0'; 83 IF OPERATION(1 DOWNTO 0) = "11" 84 THEN WAIT for 4000 ns; 85 ELSE WAIT for 2000 ns; 86 END IF; 87 end if; WAIT; will wait forever 90 END PROCESS; *** End Test Bench - User Defined Section *** END; 94 Page 2

24

25

26

27 Computer Structure lab Handout #3: A simple slave device 3.1 Guidelines for the whole Lab Generally in the lab we are working on two projects. The first, project home_v25, can be downloaded from the Lab site. This project can be used in the same way, at home and in the lab, and all the designs and simulations have to be done within that project. The second, source_v25, is given to you in your lab working directory. This project can be used only on the Lab's computers. Project is designed with a schematic top level and consists of two schematic pages. On page N2 there are the I/O Control Logic symbols and the Pin LOC property definitions. No design work to be made on page N2. Place all your design work on page N1.In your design do not use tri-state buffers (i.e. drivers) or ZZZZ, XXXX, UUUU equations, in order to avoid outputs conflict. Use MUX instead. In case you have ignored those remarks, it s to your full financial responsibility, when damage to the hardware occurs!! On page N1 there are all the signals you will need in order to connect the design to the parallel RESA bus. Use labels, not wires for these connections. Note that input signals AS_N and WR_OUT_N are connected to VCC. In order to use them you will need to remove the VCC connection. In order to personalize your work, you can rename the projects directory, but it's strictly forbidden to change it location or to rename any directory or file within it. 3.2 Design 1. Understand in details the schematic and functionality of the given master device. 2. Make address partitioning, single and 32 word blocks, according to the regulations described in Lab Notes and RESA monitor user guide. Create table with address of the block, pages and corresponding inputs of the slave device. 3. Using the project home_v25 as a design environment, design a simple component ID_NUM with a single 8 bit constant output ID[7:0] of your group number and a slave device, capable of allowing reading information from four 32bit inputs according to your address partitioning. 4. Create the slave_t.vhd (VHDL test bench file) file for your slave device and check it using ISE Simulator. 5. Use function add copy of source to transfer your designs from home_v25 project to project sources_v25. Place your components on the sheet and connect them to the master device and I/O Logic bus. 6. Execute Generate programming file for your design in order to receive '.bit' file. 7. Run and debug your design using the Hardware monitor of the RESA monitor. 8. Print and explain your designs, simulations, labels and monitoring results (data snapshots) for three sequential steps.

28 Warnings and reminders: 1. For this exercise you will use the RESA. The RESA is connected to the PC and all the operations should be done via the RESA monitor program. 2. Do not use drivers in your design!!! Conflicting drivers (due to design errors) can cause hardware damages. Instead of drivers use corresponding multiplexers. 3. All flip-flops, registers, RAM and counters in your design should share the same clock. Elements differ in their clock enable signals.

29 AS_N WR_OUT_N MAO(31:0) STEP_EN reg_out(31:0) A A MDO(31:0) ACK_N Master I/O STEP_EN RESET CLK reg_adr(4:0) master RESET CLK reg_adr(4:0) in_init step_num(4:0) REG_OUT(31:0) IN_INIT STEP_NUM(4:0) state(3:0) STATE(3:0) reg_write(4:0) REG_WRIE(4:0) IN_INIT B B RESET STEP_EN CLK Control I/O DO(31:0) Bus data O C C SACK_N SDO(31:0) WR_IN_N AI(9:0) Card_Sel Slave I/O D D

30 A A B B C C D D CLK STEP_EN RESET mux5bit sel A0(4:0) A1(4:0) O(4:0) RAM32X32S CLK WE D(31:0) ADD(4:0) DO(31:0) INV broja clk step reset in_init cnt(31:0) state(3:0) CLK wide(31:0) wide(4:0) reg_out(31:0) in_init reg_adr(4:0) CLK STEP_EN RESET buf5 Din(4:0) Dout(4:0) wide(4:0) step_counter clk ce reset cnt_o(4:0) state(3:0) step_num(4:0) reg_write(4:0) state(3)

31 Computer Structure lab Handout #4 Built-in Self Monitoring 4.1 Pre-Lab Assignment Consider the application from the previous assignment: a 32-bit binary counter connected to 32x32 bit RAM. We monitored the following functionality: After reset, on step_en Counter counts forward 8 steps, on next -16 steps and continue with this count scheme 8/16. Thus in every step 8 or 16 RAM cells are filled with corresponding counter values. Our goal is to start sampling the state of the counter starting with the rising edge of the clock that occurs after the rising edge of the step_en signal. The sampling should stop when the counter is stuck. To perform this you can use the signal called in_init, generated by the application. The in_init is set to 0 when the counter starts to count and set to 1 when the counter is stuck (the counter s is stuck when the output value didn t change with the next clock). Note, that the Logic Analyzer is capable to sample no more than 32 signals in period of up to 32 clock periods. In case of wait states that will make the sample period longer than 32 clocks, the Application have to generate signal stop_n in order to avoid missed samplings. 1. (5 pts.) Which control signals should the application transmit to the Monitor Slave (including the Logic Analyzer)? Differentiate between signals that are monitored by the Logic Analyzer, and signals that aid the Monitor Slave and the Logic Analyzer to functioning properly. 2. (10 pts.) Write the equations for the following signals: (a) Sample enable (LA_RUN) signal of the Logic Analyzer. (b) Write enable (LA_WE) signal of the Logic Analyzer s RAM. (c) Count enable (CNT_CE) signal of the Logic Analyzer s counter. (d) Clock enable (STS_CE) signal of Logic Analyzer s the Status Register. (e) The reset (RST_CE) signal of the Logic Analyzer s counter. (f) The Select signal of the MUX that selects the address input of the Logic Analyzer s RAM 3. (25 pts.) Using the Slave design from the previous handout prepare symbol Monitor, capable to support read transactions from the Status register, ID_NUM and the Logic Analyzer s RAM and two external inputs; Prepare list of graphic labels with corresponding inputs of the Logic Analyzer s RAM. Submit a hand written design.

32 4.2 Lab Assignment 1. Using the XILINX Design Manager create your Monitor. 2. Create the Monitor_t.vhd file for your slave device, and check it using ISIM. 3. Transfer your design to project sources_v25, connect it to the I/O Logic and implement it in order to produce its '.bit' file. 4. Configure RESA with your design. Modify the existing label table by adding STATUS, LA_RAM and graphic labels. 5. Monitor the Master s registers, number of the steps and waveforms of the sampled control signals. 6. Submit printouts of your design, simulation waveforms, Label report and monitoring results including graph waveforms. 7. Analysis. Submit, with respect to your previously submitted printouts, answers to the following questions. Explain your answers. a. How many samples are made by Logic Analyzer? b. In how many clock cycles was the Master active? c. How many Registers (in the RAM32x32) have changed their values? Warning: You will need your Monitor slave design for all your future lab assignments. Spend some extra time making sure it is well designed.

33

34 Computer Structure lab Handout #5: A Read Machine and a Write Machine 5.1 Pre-lab Assignment 1. (15 pts) Design symbols of a Write Machine and a Read Machine. Submit handwritten designs. 2. (5 pts) Write the equation of the stop_n signal. Pay attention that you should capture all the necessary information during the Monitoring. 3. (5 pts) Suppose that we wish to monitor the activity of a Write Machine using the Logic Analyzer module. We would like to start sampling when the step_en signal rises, and end the sampling two cycles after the Write Machine returns to the wait state. What changes do you suppose should be made? Submit a hand written design or equations. 4. (5 pts) You should implement the Read and Write machines in two separate source environments. Suppose that we want to implement both in a single source environment, is it possible? Justify your answer. 5. (5 pts) Is it possible to design a modified Read Machine that has the same functionality but does not have the load state? 6. (5 pts) Can you get rid of the terminate state in the Write Machine without changing the functionality? 5.2 Post-lab Assignment (60 pts) 1. Using ISE prepare designs of a Write Machine and a Read Machine and simulate them. 2. Using project sources_v25 prepare a design with the Monitor Slave (with the Logic Analyzer) and the Write Machine symbol and implement it. 3. Prepare a label file for the RESA program and monitor your design of the Write Machine 4. Repeat steps 2 and 3 for the Read Machine 5. Submit: printouts of designs; simulation; monitoring results of: (a) the state transitions; (b) the bus activity of the machines; (c) control signals; (d) the address of the accessed main memory (e) the data (the value of the main memory in the corresponding address, in the Read Machine: the register of the Read Machine, in the Write Machine: the constant data to be written).

35 Computer Structure lab Handout #6: A Load/Store Machine 6.1 Assignment #1 Design of the Load/Store Machine: 1. (5 pts.) Address translation. The main memory address space to which the Load/Store Machine can both read and write is 0x x01FFFFF. Suppose we are interested in giving the Load/Store Machine the illusion of a 16- bit main memory address space with the addresses 0x0000-0xFFFF. Show how the Address Translation Module can support this illusion. Refer to the PC register and the address used for memory accesses. 2. (25 pts.) Assume, that due to the library, we always want to have 32 registers in the GPR, although we only really need 31 registers. There are two ways to implement the register R0 in the GPR. In one way, write access to R0 are disabled to keep them with a zero. In the second way, data read from R0 are pulled down to output a zero. Compare these two methods and explain which method is cheaper/faster. Assume, we wish to extend the "pull-down" and "disabled write access" mechanisms to R31 in addition to R0. Describe the required changes to the mechanism you have already chosen in your design. 3. (10 pts.) Design the Memory Access Control module. Outline the differences between this module and the Read and Write Machines. 4. (40 pts.) Complete the Load/Store Machine design. Your design should be as simple as possible. Do not try to make a design that will be easy to use as a basis for the DLX! That will complicate your design. (a) (25 pts.) Prepare designs of the blocks in the data path (PC environment, GPR environment, IR environment, etc.). Each design should be organized as follows: list of inputs and outputs, definition of functionality (equations describing relations between outputs and inputs), and drawing (you may use counters, decoders, etc. as building blocks of your designs). (b) (10 pts.) Prepare a table listing all the control signals, their meanings, their equations and the ports they are connected to. (c) (5 pts.) Submit printouts of your VHDL design and schematics. 5. (20 pts.) Prepare list of test vectors for the Control block of the Load/Store Machine. The Control block of the L/S Machine consists of MAC and main control machine. Submit a list of paths, input values for each path, and expected output values for each path. Guidelines: (a) Name all signals and modules using only letters and numbers. Do not use non-letters in the names except for underscores. (b) When the Load/Store Machine fetches an instruction which is not a load or a store instruction it halts by

36 entering a halt state. (c) You have to add an output signals signifying the state of the controls to simplify testing of your design. 6.2 Assignment #2 Simulation of the Load/Store Machine: 1. Create control_t.vhd file using the test vectors you designed for the control block of the Load/Store. Simulate the Control block of the Load/Store Machine using the ISE Simulator and vhdl test bench file you created. Submit printouts of your simulation, showing that the outputs are as expected. Annotate the printouts by hand written explanations (which path is tested, what is seen, etc.). 2. Using the ISE Simulator, simulate your design to verify all the RTL instructions. Submit printouts of simulations of tests annotated with explanations. 3. Using the ISE Simulator, simulate your design to verify whole instructions. Submit printouts of executions, to demonstrate the correctness of your design. Annotate the simulations with explanations. Remark: The last two items have to be performed using I/O SIMUL. You have to create schematic symbol with I/O SIMUL and your L/S machine as well. The two test results can be shown in the same simulation. If you choose to do so, make sure not to omit any of the required data and explanations. The initial contents of the I/O SIMUL main memory (sram_data.vhd) is depicted in of the Lab Notes, but you can use your own. In this case write short assembly program and compile it using the Compiler of the RESA program. Convert the received.lst file to the VHDL format (.txt) using lst_to_vhd convertor and replace the initial contents of the sram_data.vhd file. In case you decide to use your own tests, submit printout of your initialization as well as printouts of your program for the I/O SIMUL. 6.3 Assignment #3 Implementation of Load/Store Machine with a monitor slave and a logic analyzer: 1. Use project sources_v25, and implement a design of your Load/Store Machine with a monitor slave and a logic analyzer. 2. Use the.cod file of the assembly program that you have used in and Use the RESA Monitor program to run and debug your Load/Store machine design. 4. Submit printouts of the Monitor program results. Show that your machine executes instructions correctly. Annotate the printout with explanations of what is happening in each cycle.

37

38 Computer Structure lab Handout #7: A simplified DLX: design, testing, timing, and programming Each question counts as one assignment. We highly recommend that you divide the load between students in the same group, otherwise you will find the burden too high Design and test the simplified DLX. Submit schematics of the project and of the new modules. Submit VHDL file of the Control block. Describe how you tested the control. Submit results of testing it using test vectors. (In order to reduce the amount submitted simulation, please submit test vectors of the following paths only: ALU, TESTI, LOAD, STORE, JALR, BTAKEN. However, you should prepare test vectors for all of the paths.) Test your design to see if the correct RTL instruction is executed in each state. Write and compile short DLX programs that test every instruction. Note that some instructions must be tested more than once (e.g. branch taken and branch not taken ). Store these programs in the RAM of the I/O SIMUL module. Simulate your DLX design using the modified I/O SIMUL module. Submit: (1) Your programs. For every instruction, list the states that are traversed. (2) Waveforms of a simulation of your design. Add remarks to the waveforms that show the traversed states, the RTL instruction that were executed, and what they did. After completing these stages successfully, it is likely that your design can be run on the RESA and monitored to see if it functions properly Implement and test your design on the RESA. Implement your design. Check the timing report. You should easily meet the timing requirements (All constraints are met). In case your design do not meet the timing constraints please address the Lab Engineer. Re-use the test programs you used to test the RTL instructions on the RESA. Use the Logic Analyzer to verify that the RTL instructions are executed properly. Submit printouts of the monitoring with remarks explaining why you got the right results. Read the DLX test program (DLX.lst). Describe how it tests the DLX design. In the following procedure get the assistance of the lab's engineer. Download to the RESA memory the file `DLX.cod' and run the test procedure on your design. Analyze the results. Your design should pass the test! Get the lab engineer's approval of your design.

39 7.3. Timing optimization of your design Your design should meet the 60 MHZ threshold. Try to design the fastest design you can. Implement your design and meet the faster timing requirements (clock rate more than 60 MHz). There are a few ways to try to decrease the feasible clock period. In the beginning try to reduce delays due to routing in the FPGA. This can be done by helping the place & route tools. You will be told more on how this is done. Tray to optimize the design, correspondingly to the FPGA principals of design. Optimize the type of the state registers and state encoding. Analyze the presented DLX logic and optimize it application Next method is to identify the critical path and try to shorten its delay. This method is applicable provided that there are only a few critical paths. The third technique can be used if you failed in shortening the delay of critical paths. Suppose the critical path includes the ALU. A way to solve this critical path is to allow two cycles for the ALU. This requires a change in the control so that each of the corresponding states is divided into two states. Before using this method you will need to floorplan your design. In any way, this will add more cycles in the instruction execution. You should be able to solve the timing problem without it. Note that the timing analysis done by the software tools is often too pessimistic (worst case). Your design may be fast enough even if the software reports otherwise. The three teams with the best timing results will be ranked Software program The goal of this assignment is to write a DLX assembly program, that solves a problem, and run it on the DLX you designed. This assignment will be given to you in the following weeks.

40 7.2 Implementation - Summery SavePC /Init c Presentation s copyrights Moti Medina

41 Advanced Computer Structure Lab Handout #7: A simplified DLX Approval form Team number: Please get the required approvals of the Lab Engineer and add to your report scan of this document. Good Luck Advanced Computer Structure Lab staff Test 7.2 approval Status: Date: Signature: Test 7.3 approval: Timing: Date: Signature: Test 7.4 approval: Date: Signature: Results:

VHDL Testbench. Test Bench Syntax. VHDL Testbench Tutorial 1. Contents

VHDL Testbench. Test Bench Syntax. VHDL Testbench Tutorial 1. Contents VHDL Testbench Tutorial 1 Contents 1 VHDL Testbench 2 Test Bench Syntax 3 Testbench Example: VHDL Code for Up Down Binary Counter 4 VHDL Testbench code for up down binary counter 5 Testbench Waveform for

More information

CPE 626 Advanced VLSI Design Lecture 6: VHDL Synthesis. Register File: An Example. Register File: An Example (cont d) Aleksandar Milenkovic

CPE 626 Advanced VLSI Design Lecture 6: VHDL Synthesis. Register File: An Example. Register File: An Example (cont d) Aleksandar Milenkovic CPE 626 Lecture 6: VHDL Synthesis Aleksandar Milenkovic http://www.ece.uah.edu/~milenka http://www.ece.uah.edu/~milenka/cpe626-04f/ milenka@ece.uah.edu Assistant Professor Electrical and Computer Engineering

More information

EENG 2910 Project III: Digital System Design. Due: 04/30/2014. Team Members: University of North Texas Department of Electrical Engineering

EENG 2910 Project III: Digital System Design. Due: 04/30/2014. Team Members: University of North Texas Department of Electrical Engineering EENG 2910 Project III: Digital System Design Due: 04/30/2014 Team Members: University of North Texas Department of Electrical Engineering Table of Content i Contents Abstract...3 Introduction...3 Report...4

More information

Control and Datapath 8

Control and Datapath 8 Control and Datapath 8 Engineering attempts to develop design methods that break a problem up into separate steps to simplify the design and increase the likelihood of a correct solution. Digital system

More information

CCE 3202 Advanced Digital System Design

CCE 3202 Advanced Digital System Design CCE 3202 Advanced Digital System Design Lab Exercise #2 Introduction You will use Xilinx Webpack v9.1 to allow the synthesis and creation of VHDLbased designs. This lab will outline the steps necessary

More information

Field Programmable Gate Array

Field Programmable Gate Array Field Programmable Gate Array System Arch 27 (Fire Tom Wada) What is FPGA? System Arch 27 (Fire Tom Wada) 2 FPGA Programmable (= reconfigurable) Digital System Component Basic components Combinational

More information

CCE 3202 Advanced Digital System Design

CCE 3202 Advanced Digital System Design CCE 3202 Advanced Digital System Design Lab Exercise #2 This lab exercise will show you how to create, synthesize, and test a 3-bit ripple counter. A ripple counter is simply a circuit that outputs the

More information

CSE 591: Advanced Hardware Design and Verification (2012 Spring) LAB #0

CSE 591: Advanced Hardware Design and Verification (2012 Spring) LAB #0 Lab 0: Tutorial on Xilinx Project Navigator & ALDEC s Active-HDL Simulator CSE 591: Advanced Hardware Design and Verification Assigned: 01/05/2011 Due: 01/19/2011 Table of Contents 1 Overview... 2 1.1

More information

COE Design Process Tutorial

COE Design Process Tutorial COE 758 - Design Process Tutorial I. Introduction This tutorial describes a formal design process for the creation of digital systems. The aim of this design process is to provide a systematic approach

More information

In our case Dr. Johnson is setting the best practices

In our case Dr. Johnson is setting the best practices VHDL Best Practices Best Practices??? Best practices are often defined by company, toolset or device In our case Dr. Johnson is setting the best practices These rules are for Class/Lab purposes. Industry

More information

ENGG3380: Computer Organization and Design Lab4: Buses and Peripheral Devices

ENGG3380: Computer Organization and Design Lab4: Buses and Peripheral Devices ENGG3380: Computer Organization and Design Lab4: Buses and Peripheral Devices School of Engineering, University of Guelph Winter 2017 1 Objectives: The purpose of this lab is : Learn basic bus design techniques.

More information

Test Benches - Module 8

Test Benches - Module 8 Test Benches Module 8 Jim Duckworth, WPI 1 Overview We have concentrated on VHDL for synthesis Can also use VHDL as a test language Very important to conduct comprehensive verification on your design To

More information

Midterm Exam Thursday, October 24, :00--2:15PM (75 minutes)

Midterm Exam Thursday, October 24, :00--2:15PM (75 minutes) Last (family) name: Answer Key First (given) name: Student I.D. #: Department of Electrical and Computer Engineering University of Wisconsin - Madison ECE 551 Digital System Design and Synthesis Midterm

More information

VHDL for Modeling - Module 10

VHDL for Modeling - Module 10 VHDL for Modeling Module 10 Jim Duckworth, WPI 1 Overview General examples AND model Flip-flop model SRAM Model Generics DDR SDRAM Model Constraints Metastability Block Statements Just for reference Jim

More information

Logic Implementation on a Xilinx FPGA using VHDL WWU Linux platform assumed. rev 11/01/17

Logic Implementation on a Xilinx FPGA using VHDL WWU Linux platform assumed. rev 11/01/17 1 Logic Implementation on a Xilinx FPGA using VHDL WWU Linux platform assumed. rev 11/01/17 The following is a general outline of steps (i.e. design flow) used to implement a digital system described with

More information

Lecture 12 VHDL Synthesis

Lecture 12 VHDL Synthesis CPE 487: Digital System Design Spring 2018 Lecture 12 VHDL Synthesis Bryan Ackland Department of Electrical and Computer Engineering Stevens Institute of Technology Hoboken, NJ 07030 1 What is Synthesis?

More information

Sequential Logic - Module 5

Sequential Logic - Module 5 Sequential Logic Module 5 Jim Duckworth, WPI 1 Latches and Flip-Flops Implemented by using signals in IF statements that are not completely specified Necessary latches or registers are inferred by the

More information

Sign here to give permission to return your test in class, where other students might see your score:

Sign here to give permission to return your test in class, where other students might see your score: EEL 4712 Midterm 1 Spring 2017 VERSION 1 Name: UFID: Sign here to give permission to return your test in class, where other students might see your score: IMPORTANT: Please be neat and write (or draw)

More information

Introduction to Xilinx Vivado tools

Introduction to Xilinx Vivado tools Introduction to Xilinx Vivado tools This document is meant to be a starting point for users who are new to using the Xilinx Vivado tools. The document will describe the basic steps to start, create, simulate,

More information

Summary of FPGA & VHDL

Summary of FPGA & VHDL FYS4220/9220 Summary of FPGA & VHDL Lecture #6 Jan Kenneth Bekkeng, University of Oslo - Department of Physics 16.11.2011 Curriculum (VHDL & FPGA part) Curriculum (Syllabus) defined by: Lectures Lecture6:

More information

Problem Set 10 Solutions

Problem Set 10 Solutions CSE 260 Digital Computers: Organization and Logical Design Problem Set 10 Solutions Jon Turner thru 6.20 1. The diagram below shows a memory array containing 32 words of 2 bits each. Label each memory

More information

Tutorial: Working with the Xilinx tools 14.4

Tutorial: Working with the Xilinx tools 14.4 Tutorial: Working with the Xilinx tools 14.4 This tutorial will show you how to: Part I: Set up a new project in ISE Part II: Implement a function using Schematics Part III: Implement a function using

More information

Laboratory of Digital Circuits Design: Design, Implementation and Simulation of Digital Circuits Using Programmable Devices

Laboratory of Digital Circuits Design: Design, Implementation and Simulation of Digital Circuits Using Programmable Devices Internet Engineering Dr. Jarosław Sugier Laboratory of Digital Circuits Design: Design, Implementation and Simulation of Digital Circuits Using Programmable Devices This document presents software packages

More information

Outline. CPE/EE 422/522 Advanced Logic Design L05. Review: General Model of Moore Sequential Machine. Review: Mealy Sequential Networks.

Outline. CPE/EE 422/522 Advanced Logic Design L05. Review: General Model of Moore Sequential Machine. Review: Mealy Sequential Networks. Outline CPE/EE 422/522 Advanced Logic Design L05 Electrical and Computer Engineering University of Alabama in Huntsville What we know Combinational Networks Sequential Networks: Basic Building Blocks,

More information

Hardware Design Environments. Dr. Mahdi Abbasi Computer Engineering Department Bu-Ali Sina University

Hardware Design Environments. Dr. Mahdi Abbasi Computer Engineering Department Bu-Ali Sina University Hardware Design Environments Dr. Mahdi Abbasi Computer Engineering Department Bu-Ali Sina University Outline Welcome to COE 405 Digital System Design Design Domains and Levels of Abstractions Synthesis

More information

Design a three-input, two-output sequential digital circuit which functions as a digital locking mechanism. LOCK ALARM

Design a three-input, two-output sequential digital circuit which functions as a digital locking mechanism. LOCK ALARM Department of Computing Course 112 Hardware First Year Laboratory Assignment Dates for the session 2005-2006: Hand out Date: 10 th January 2006 Hand in deadline (electronic and written report): 17.00 Monday

More information

Quartus Counter Example. Last updated 9/6/18

Quartus Counter Example. Last updated 9/6/18 Quartus Counter Example Last updated 9/6/18 Create a logic design from start to a DE10 implementation This example uses best design practices This example is not about creating HDL The HDL code will be

More information

Logic Implementation on a Xilinx FPGA using VHDL WWU Linux platform assumed. rev 10/25/16

Logic Implementation on a Xilinx FPGA using VHDL WWU Linux platform assumed. rev 10/25/16 1 Logic Implementation on a Xilinx FPGA using VHDL WWU Linux platform assumed. rev 10/25/16 The following is a general outline of steps (i.e. design flow) used to implement a digital system described with

More information

Schedule. ECE U530 Digital Hardware Synthesis. Rest of Semester. Midterm Question 1a

Schedule. ECE U530 Digital Hardware Synthesis. Rest of Semester. Midterm Question 1a ECE U530 Digital Hardware Synthesis Prof. Miriam Leeser mel@coe.neu.edu November 8, 2006 Midterm Average: 70 Lecture 16: Midterm Solutions Homework 6: Calculator Handshaking HW 6: Due Wednesday, November

More information

ENGN 1630: CPLD Simulation Fall ENGN 1630 Fall Simulating XC9572XLs on the ENGN1630 CPLD-II Board Using Xilinx ISim

ENGN 1630: CPLD Simulation Fall ENGN 1630 Fall Simulating XC9572XLs on the ENGN1630 CPLD-II Board Using Xilinx ISim ENGN 1630 Fall 2018 Simulating XC9572XLs on the ENGN1630 CPLD-II Board Using Xilinx ISim You will use the Xilinx ISim simulation software for the required timing simulation of the XC9572XL CPLD programmable

More information

VHDL Simulation. Testbench Design

VHDL Simulation. Testbench Design VHDL Simulation Testbench Design The Test Bench Concept Elements of a VHDL/Verilog testbench Unit Under Test (UUT) or Device Under Test (DUT) instantiate one or more UUT s Stimulus of UUT inputs algorithmic

More information

Luleå University of Technology Kurskod SMD152 Datum Skrivtid

Luleå University of Technology Kurskod SMD152 Datum Skrivtid Luleå University of Technology Kurskod SMD152 Datum 2003-10-24 Skrivtid 9.00 13.00 1 Manual synthesis (10 p, 2 p each) Here you are given five different VHDL models. Your task is to draw the schematics

More information

Synthesis from VHDL. Krzysztof Kuchcinski Department of Computer Science Lund Institute of Technology Sweden

Synthesis from VHDL. Krzysztof Kuchcinski Department of Computer Science Lund Institute of Technology Sweden Synthesis from VHDL Krzysztof Kuchcinski Krzysztof.Kuchcinski@cs.lth.se Department of Computer Science Lund Institute of Technology Sweden March 23, 2006 Kris Kuchcinski (LTH) Synthesis from VHDL March

More information

Verilog Design Entry, Synthesis, and Behavioral Simulation

Verilog Design Entry, Synthesis, and Behavioral Simulation ------------------------------------------------------------- PURPOSE - This lab will present a brief overview of a typical design flow and then will start to walk you through some typical tasks and familiarize

More information

Lab 6 : Introduction to Verilog

Lab 6 : Introduction to Verilog Lab 6 : Introduction to Verilog Name: Sign the following statement: On my honor, as an Aggie, I have neither given nor received unauthorized aid on this academic work 1 Objective The main objective of

More information

Design Problem 3 Solutions

Design Problem 3 Solutions CSE 260 Digital Computers: Organization and Logical Design Jon Turner Design Problem 3 Solutions In this problem, you are to design, simulate and implement a sequential pattern spotter, using VHDL. This

More information

Designing with VHDL and FPGA

Designing with VHDL and FPGA Designing with VHDL and FPGA Instructor: Dr. Ahmad El-Banna lab# 5-II 1 Agenda Structural way in VHDL Mixed Example 2 Modeling the Structurural way Structural architecture implements the module as a composition

More information

VHDL: Modeling RAM and Register Files. Textbook Chapters: 6.6.1, 8.7, 8.8, 9.5.2, 11.2

VHDL: Modeling RAM and Register Files. Textbook Chapters: 6.6.1, 8.7, 8.8, 9.5.2, 11.2 VHDL: Modeling RAM and Register Files Textbook Chapters: 6.6.1, 8.7, 8.8, 9.5.2, 11.2 Memory Synthesis Approaches: Random logic using flip-flops or latches Register files in datapaths RAM standard components

More information

structure syntax different levels of abstraction

structure syntax different levels of abstraction This and the next lectures are about Verilog HDL, which, together with another language VHDL, are the most popular hardware languages used in industry. Verilog is only a tool; this course is about digital

More information

Here is a list of lecture objectives. They are provided for you to reflect on what you are supposed to learn, rather than an introduction to this

Here is a list of lecture objectives. They are provided for you to reflect on what you are supposed to learn, rather than an introduction to this This and the next lectures are about Verilog HDL, which, together with another language VHDL, are the most popular hardware languages used in industry. Verilog is only a tool; this course is about digital

More information

1 ST SUMMER SCHOOL: VHDL BOOTCAMP PISA, JULY 2013

1 ST SUMMER SCHOOL: VHDL BOOTCAMP PISA, JULY 2013 MARIE CURIE IAPP: FAST TRACKER FOR HADRON COLLIDER EXPERIMENTS 1 ST SUMMER SCHOOL: VHDL BOOTCAMP PISA, JULY 2013 Introduction to VHDL Calliope-Louisa Sotiropoulou PhD Candidate/Researcher Aristotle University

More information

APPENDIX 1 SINUSOIDAL PULSE WIDTH MODULATION

APPENDIX 1 SINUSOIDAL PULSE WIDTH MODULATION 120 APPENDIX 1 SINUSOIDAL PULSE WIDTH MODULATION % A Program For Analysis of SINUSOIDAL PULSE WIDTH MODULATION of Inverter Fed AC Drive % Signal. % By: R.Rajran % Date 08/06/2011 % clear all disp('sinusoidal

More information

VHDL Testbench Design. Textbook chapters 2.19, , 9.5

VHDL Testbench Design. Textbook chapters 2.19, , 9.5 VHDL Testbench Design Textbook chapters 2.19, 4.10-4.12, 9.5 The Test Bench Concept Elements of a VHDL/Verilog testbench Unit Under Test (UUT) or Device Under Test (DUT) instantiate one or more UUT s Stimulus

More information

VHDL/Verilog Simulation. Testbench Design

VHDL/Verilog Simulation. Testbench Design VHDL/Verilog Simulation Testbench Design The Test Bench Concept Elements of a VHDL/Verilog testbench Unit Under Test (UUT) or Device Under Test (DUT) instantiate one or more UUT s Stimulus of UUT inputs

More information

DIGITAL LOGIC WITH VHDL (Fall 2013) Unit 1

DIGITAL LOGIC WITH VHDL (Fall 2013) Unit 1 DIGITAL LOGIC WITH VHDL (Fall 23) Unit DESIGN FLOW DATA TYPES LOGIC GATES WITH VHDL TESTBENCH GENERATION DESIGN FLOW Design Entry: We specify the logic circuit using a Hardware Description Language (e.g.,

More information

Using ModelSim to Simulate Logic Circuits in VHDL Designs. 1 Introduction. For Quartus II 13.0

Using ModelSim to Simulate Logic Circuits in VHDL Designs. 1 Introduction. For Quartus II 13.0 Using ModelSim to Simulate Logic Circuits in VHDL Designs For Quartus II 13.0 1 Introduction This tutorial is a basic introduction to ModelSim, a Mentor Graphics simulation tool for logic circuits. We

More information

Advanced Computer Structure Laboratory

Advanced Computer Structure Laboratory Course Website: http://www.eng.tau.ac.il/~marko Advanced Computer Structure Laboratory Chapter 1: Orientation Liron David Course s Staff Prof. Guy Even guy@eng.tau.ac.il Lab Assistant: Marko Markov marko@eng.tau.ac.il

More information

Introduction to WebPACK 3.1. Using XILINX WebPACK Software to Create CPLD Designs

Introduction to WebPACK 3.1. Using XILINX WebPACK Software to Create CPLD Designs Introduction to WebPACK 3.1 Using XILINX WebPACK Software to Create CPLD Designs RELEASE DATE: 8/28/2000 All XS-prefix product designations are trademarks of XESS Corp. All XC-prefix product designations

More information

FPGA briefing Part II FPGA development DMW: FPGA development DMW:

FPGA briefing Part II FPGA development DMW: FPGA development DMW: FPGA briefing Part II FPGA development FPGA development 1 FPGA development FPGA development : Domain level analysis (Level 3). System level design (Level 2). Module level design (Level 1). Academical focus

More information

Using XILINX WebPACK Software to Create CPLD Designs

Using XILINX WebPACK Software to Create CPLD Designs Introduction to WebPACK Using XILINX WebPACK Software to Create CPLD Designs RELEASE DATE: 10/24/1999 All XS-prefix product designations are trademarks of XESS Corp. All XC-prefix product designations

More information

Simulation with ModelSim Altera from Quartus II

Simulation with ModelSim Altera from Quartus II Simulation with ModelSim Altera from Quartus II Quick Start Guide Embedded System Course LAP IC EPFL 2010 Version 0.6 (Preliminary) René Beuchat, Cagri Onal 1 Installation and documentation Main information

More information

CprE 583 Reconfigurable Computing

CprE 583 Reconfigurable Computing Recap Moore FSM Example CprE / ComS 583 Reconfigurable Computing Moore FSM that recognizes sequence 10 0 1 0 1 S0 / 0 S1 / 0 1 S2 / 1 Prof. Joseph Zambreno Department of Electrical and Computer Engineering

More information

FPGA design with National Instuments

FPGA design with National Instuments FPGA design with National Instuments Rémi DA SILVA Systems Engineer - Embedded and Data Acquisition Systems - MED Region ni.com The NI Approach to Flexible Hardware Processor Real-time OS Application software

More information

Design Problem 5 Solution

Design Problem 5 Solution CSE 260 Digital Computers: Organization and Logical Design Design Problem 5 Solution Jon Turner Due 5/3/05 1. (150 points) In this problem, you are to extend the design of the basic processor to implement

More information

IT T35 Digital system desigm y - ii /s - iii

IT T35 Digital system desigm y - ii /s - iii UNIT - V Introduction to Verilog Hardware Description Language Introduction HDL for combinational circuits Sequential circuits Registers and counters HDL description for binary multiplier. 5.1 INTRODUCTION

More information

VHDL And Synthesis Review

VHDL And Synthesis Review VHDL And Synthesis Review VHDL In Detail Things that we will look at: Port and Types Arithmetic Operators Design styles for Synthesis VHDL Ports Four Different Types of Ports in: signal values are read-only

More information

Abi Farsoni, Department of Nuclear Engineering and Radiation Health Physics, Oregon State University

Abi Farsoni, Department of Nuclear Engineering and Radiation Health Physics, Oregon State University Hardware description language (HDL) Intended to describe circuits textually, for a computer to read Evolved starting in the 1970s and 1980s Popular languages today include: VHDL Defined in 1980s by U.S.

More information

Hardware Description Language VHDL (1) Introduction

Hardware Description Language VHDL (1) Introduction Hardware Description Language VHDL (1) Introduction Digital Radiation Measurement and Spectroscopy NE/RHP 537 Introduction Hardware description language (HDL) Intended to describe circuits textually, for

More information

Chapter 6 Combinational-Circuit Building Blocks

Chapter 6 Combinational-Circuit Building Blocks Chapter 6 Combinational-Circuit Building Blocks Commonly used combinational building blocks in design of large circuits: Multiplexers Decoders Encoders Comparators Arithmetic circuits Multiplexers A multiplexer

More information

Two HDLs used today VHDL. Why VHDL? Introduction to Structured VLSI Design

Two HDLs used today VHDL. Why VHDL? Introduction to Structured VLSI Design Two HDLs used today Introduction to Structured VLSI Design VHDL I VHDL and Verilog Syntax and ``appearance'' of the two languages are very different Capabilities and scopes are quite similar Both are industrial

More information

ECEU530. Schedule. ECE U530 Digital Hardware Synthesis. Datapath for the Calculator (HW 5) HW 5 Datapath Entity

ECEU530. Schedule. ECE U530 Digital Hardware Synthesis. Datapath for the Calculator (HW 5) HW 5 Datapath Entity ECE U530 Digital Hardware Synthesis Prof. Miriam Leeser mel@coe.neu.edu November 6, 2006 Classes November 6 and 8 are in 429 Dana! Lecture 15: Homework 5: Datapath How to write a testbench for synchronous

More information

Programmable Logic Design I

Programmable Logic Design I Programmable Logic Design I Introduction In labs 11 and 12 you built simple logic circuits on breadboards using TTL logic circuits on 7400 series chips. This process is simple and easy for small circuits.

More information

Design Problem 4 Solution

Design Problem 4 Solution CSE 260 Digital Computers: Organization and Logical Design Design Problem 4 Solution Jon Turner Due 4/13/06 1. (125 points). In this problem, you will design a packet FIFO, which is a circuit that temporarily

More information

Assignment 01 Computer Architecture Lab ECSE

Assignment 01 Computer Architecture Lab ECSE Assignment 01 Computer Architecture Lab ECSE 487-001 Date due: September 22, 2006, Trottier Assignment Box by 14:30 1 Introduction The purpose of this assignment is to re-familiarize the student with VHDL

More information

COVER SHEET: Total: Regrade Info: 5 (14 points) 7 (15 points) Midterm 1 Spring 2012 VERSION 1 UFID:

COVER SHEET: Total: Regrade Info: 5 (14 points) 7 (15 points) Midterm 1 Spring 2012 VERSION 1 UFID: EEL 4712 Midterm 1 Spring 2012 VERSION 1 Name: UFID: IMPORTANT: Please be neat and write (or draw) carefully. If we cannot read it with a reasonable effort, it is assumed wrong. As always, the best answer

More information

EE 367 Logic Design Lab #1 Introduction to Xilinx ISE and the ML40X Eval Board Date: 1/21/09 Due: 1/28/09

EE 367 Logic Design Lab #1 Introduction to Xilinx ISE and the ML40X Eval Board Date: 1/21/09 Due: 1/28/09 EE 367 Logic Design Lab #1 Introduction to Xilinx ISE and the ML40X Eval Board Date: 1/21/09 Due: 1/28/09 Lab Description Today s lab will introduce you to the Xilinx Integrated Software Environment (ISE)

More information

Programmable Logic Design I

Programmable Logic Design I Programmable Logic Design I Read through each section completely before starting so that you have the benefit of all the directions. Put on a grounded wrist strap (cf. Getting Started) before touching

More information

1. Synopsis: 2. Merging Algorithm:

1. Synopsis: 2. Merging Algorithm: Microprogram Control Unit Design: Merging Two Arrays 1. Synopsis: The purpose of this lab is to implement a state machine by using a microprogram control unit design. Microprograming allows flexibility

More information

OUTLINE SYSTEM-ON-CHIP DESIGN. GETTING STARTED WITH VHDL September 3, 2018 GAJSKI S Y-CHART (1983) TOP-DOWN DESIGN (1)

OUTLINE SYSTEM-ON-CHIP DESIGN. GETTING STARTED WITH VHDL September 3, 2018 GAJSKI S Y-CHART (1983) TOP-DOWN DESIGN (1) September 3, 2018 GETTING STARTED WITH VHDL 2 Top-down design VHDL history Main elements of VHDL Entities and architectures Signals and processes Data types Configurations Simulator basics The testbench

More information

ENGR 5865 DIGITAL SYSTEMS

ENGR 5865 DIGITAL SYSTEMS ENGR 5865 DIGITAL SYSTEMS ModelSim Tutorial Manual January 22, 2007 Introduction ModelSim is a CAD tool widely used in the industry for hardware design. This document describes how to edit/add, compile

More information

Sequential Statement

Sequential Statement Sequential Statement Sequential Logic Output depends not only on current input values but also on previous input values. Are building blocks of; Counters Shift registers Memories Flip flops are basic sequential

More information

Step 1: Downloading the source files

Step 1: Downloading the source files Introduction: In this lab and in the remainder of the ELEC 2607 labs, you will be using the Xilinx ISE to enter and simulate the designs for your circuits. In labs 3 and 4, you will use ISE to compile

More information

Lecture 11 Memories in Xilinx FPGAs

Lecture 11 Memories in Xilinx FPGAs Lecture 11 Memories in Xilinx FPGAs ECE 448 FPGA and ASIC Design with VHDL Recommended reading XAPP463 Using Block RAM in Spartan-3 Generation FPGAs Google search: XAPP463 XAPP464 Using Look-Up Tables

More information

VHDL in 1h. Martin Schöberl

VHDL in 1h. Martin Schöberl VHDL in 1h Martin Schöberl VHDL /= C, Java, Think in hardware All constructs run concurrent Different from software programming Forget the simulation explanation VHDL is complex We use only a small subset

More information

Note: Closed book no notes or other material allowed, no calculators or other electronic devices.

Note: Closed book no notes or other material allowed, no calculators or other electronic devices. ECE 574: Modeling and Synthesis of Digital Systems using Verilog and VHDL Fall 2017 Exam Review Note: Closed book no notes or other material allowed, no calculators or other electronic devices. One page

More information

DESIGN AND IMPLEMENTATION OF MOD-6 SYNCHRONOUS COUNTER USING VHDL

DESIGN AND IMPLEMENTATION OF MOD-6 SYNCHRONOUS COUNTER USING VHDL Arid Zone Journal of Engineering, Technology and Environment. August, 2013; Vol. 9, 17-26 DESIGN AND IMPLEMENTATION OF MOD-6 SYNCHRONOUS COUNTER USING VHDL Dibal, P.Y. (Department of Computer Engineering,

More information

Verilog introduction. Embedded and Ambient Systems Lab

Verilog introduction. Embedded and Ambient Systems Lab Verilog introduction Embedded and Ambient Systems Lab Purpose of HDL languages Modeling hardware behavior Large part of these languages can only be used for simulation, not for hardware generation (synthesis)

More information

Simulation with ModelSim Altera from Quartus II

Simulation with ModelSim Altera from Quartus II Simulation with ModelSim Altera from Quartus II Quick Start Guide Embedded System Course LAP IC EPFL 2010 Version 0.5 (Preliminary) René Beuchat, Cagri Onal 1 Installation and documentation Main information

More information

An easy to read reference is:

An easy to read reference is: 1. Synopsis: Timing Analysis and Timing Constraints The objective of this lab is to make you familiar with two critical reports produced by the Xilinx ISE during your design synthesis and implementation.

More information

Chip Design with FPGA Design Tools

Chip Design with FPGA Design Tools Chip Design with FPGA Design Tools Intern: Supervisor: Antoine Vazquez Janusz Zalewski Florida Gulf Coast University Fort Myers, FL 33928 V1.9, August 28 th. Page 1 1. Introduction FPGA is abbreviation

More information

VHDL. VHDL History. Why VHDL? Introduction to Structured VLSI Design. Very High Speed Integrated Circuit (VHSIC) Hardware Description Language

VHDL. VHDL History. Why VHDL? Introduction to Structured VLSI Design. Very High Speed Integrated Circuit (VHSIC) Hardware Description Language VHDL Introduction to Structured VLSI Design VHDL I Very High Speed Integrated Circuit (VHSIC) Hardware Description Language Joachim Rodrigues A Technology Independent, Standard Hardware description Language

More information

Lecture 5: Aldec Active-HDL Simulator

Lecture 5: Aldec Active-HDL Simulator Lecture 5: Aldec Active-HDL Simulator 1. Objective The objective of this tutorial is to introduce you to Aldec s Active-HDL 9.1 Student Edition simulator by performing the following tasks on a 4-bit adder

More information

Part 4: VHDL for sequential circuits. Introduction to Modeling and Verification of Digital Systems. Memory elements. Sequential circuits

Part 4: VHDL for sequential circuits. Introduction to Modeling and Verification of Digital Systems. Memory elements. Sequential circuits M1 Informatique / MOSIG Introduction to Modeling and erification of Digital Systems Part 4: HDL for sequential circuits Laurence PIERRE http://users-tima.imag.fr/amfors/lpierre/m1arc 2017/2018 81 Sequential

More information

Lab 3 Sequential Logic for Synthesis. FPGA Design Flow.

Lab 3 Sequential Logic for Synthesis. FPGA Design Flow. Lab 3 Sequential Logic for Synthesis. FPGA Design Flow. Task 1 Part 1 Develop a VHDL description of a Debouncer specified below. The following diagram shows the interface of the Debouncer. The following

More information

Pollard s Tutorial on Clocked Stuff in VHDL

Pollard s Tutorial on Clocked Stuff in VHDL Pollard s Tutorial on Clocked Stuff in VHDL Welcome to a biased view of how to do register type of stuff in VHDL. The object of this short note is to identify one way to easily handle registered logic

More information

The block diagram representation is given below: The output equation of a 2x1 multiplexer is given below:

The block diagram representation is given below: The output equation of a 2x1 multiplexer is given below: Experiment-3: Write VHDL programs for the following circuits, check the wave forms and the hardware generated a. multiplexer b. De-Multiplexer Objective: i. To learn the VHDL coding for Multiplexer and

More information

EITF35 - Introduction to the Structured VLSI Design (Fall 2016) Interfacing Keyboard with FPGA Board. (FPGA Interfacing) Teacher: Dr.

EITF35 - Introduction to the Structured VLSI Design (Fall 2016) Interfacing Keyboard with FPGA Board. (FPGA Interfacing) Teacher: Dr. EITF35 - Introduction to the Structured VLSI Design (Fall 2016) Interfacing Keyboard with FPGA Board (FPGA Interfacing) Teacher: Dr. Liang Liu v.1.0.0 1 Abstract This document describes the basic behavior

More information

Lattice VHDL Training

Lattice VHDL Training Lattice Part I February 2000 1 VHDL Basic Modeling Structure February 2000 2 VHDL Design Description VHDL language describes a digital system as a set of modular blocks. Each modular block is described

More information

VHDL. Chapter 1 Introduction to VHDL. Course Objectives Affected. Outline

VHDL. Chapter 1 Introduction to VHDL. Course Objectives Affected. Outline Chapter 1 Introduction to VHDL VHDL VHDL - Flaxer Eli Ch 1-1 Course Objectives Affected Write functionally correct and well-documented VHDL code, intended for either simulation or synthesis, of any combinational

More information

EITF35: Introduction to Structured VLSI Design

EITF35: Introduction to Structured VLSI Design EITF35: Introduction to Structured VLSI Design Part 1.2.2: VHDL-1 Liang Liu liang.liu@eit.lth.se 1 Outline VHDL Background Basic VHDL Component An example FSM Design with VHDL Simulation & TestBench 2

More information

VHDL for Logic Synthesis

VHDL for Logic Synthesis VHDL for Logic Synthesis Overview Design Flow for Hardware Design VHDL coding for synthesis General guidelines for hardware designers This lecture includes the content from: Nitin Yogi, Modelling for Synthesis

More information

ECE U530 Digital Hardware Synthesis. Course Accounts and Tools

ECE U530 Digital Hardware Synthesis. Course Accounts and Tools ECE U530 Digital Hardware Synthesis Prof. Miriam Leeser mel@coe.neu.edu Sept 13, 2006 Lecture 3: Basic VHDL constructs Signals, Variables, Constants VHDL Simulator and Test benches Types Reading: Ashenden

More information

Microprogram Control Unit Design: Merging Two Arrays

Microprogram Control Unit Design: Merging Two Arrays Microprogram Control Unit Design: Merging Two Arrays 1. Synopsis: The purpose of this lab is to implement a state machine by using a microprogram control unit design. Microprograming allows flexibility

More information

Introduction to VHDL Design on Quartus II and DE2 Board

Introduction to VHDL Design on Quartus II and DE2 Board ECP3116 Digital Computer Design Lab Experiment Duration: 3 hours Introduction to VHDL Design on Quartus II and DE2 Board Objective To learn how to create projects using Quartus II, design circuits and

More information

ARM 64-bit Register File

ARM 64-bit Register File ARM 64-bit Register File Introduction: In this class we will develop and simulate a simple, pipelined ARM microprocessor. Labs #1 & #2 build some basic components of the processor, then labs #3 and #4

More information

CPE 626 Advanced VLSI Design Lecture 7: VHDL Synthesis

CPE 626 Advanced VLSI Design Lecture 7: VHDL Synthesis CPE 626 Lecture 7 VHDL Synthes Aleksar Milenkovic http//www.ece.uah.edu/~milenka http//www.ece.uah.edu/~milenka/cpe626-04f/ milenka@ece.uah.edu Asstant Pressor Electrical Computer Engineering Dept. University

More information

JUNE, JULY 2013 Fundamentals of HDL (10EC45) PART A

JUNE, JULY 2013 Fundamentals of HDL (10EC45) PART A JUNE, JULY 2013 Fundamentals of HDL (10EC45) Time: 3hrs Max Marks:100 Note: Answer FIVE full questions, selecting at least TWO questions from each part. PART A Q1.a. Describe VHDL scalar data types with

More information

Laboratory 05. Single-Cycle MIPS CPU Design smaller: 16-bits version One clock cycle per instruction

Laboratory 05. Single-Cycle MIPS CPU Design smaller: 16-bits version One clock cycle per instruction Laboratory 05 Single-Cycle MIPS CPU Design smaller: 16-bits version One clock cycle per instruction 1. Objectives Study, design, implement and test Instruction Fetch Unit for the 16-bit Single-Cycle MIPS

More information

VHDL: RTL Synthesis Basics. 1 of 59

VHDL: RTL Synthesis Basics. 1 of 59 VHDL: RTL Synthesis Basics 1 of 59 Goals To learn the basics of RTL synthesis. To be able to synthesize a digital system, given its VHDL model. To be able to relate VHDL code to its synthesized output.

More information

ECE 545 Lecture 8. Data Flow Description of Combinational-Circuit Building Blocks. George Mason University

ECE 545 Lecture 8. Data Flow Description of Combinational-Circuit Building Blocks. George Mason University ECE 545 Lecture 8 Data Flow Description of Combinational-Circuit Building Blocks George Mason University Required reading P. Chu, RTL Hardware Design using VHDL Chapter 7, Combinational Circuit Design:

More information