Handout #1: The Xilinx ISE Project Navigator
|
|
- Morris Arnold
- 6 years ago
- Views:
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 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 informationCPE 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 informationEENG 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 informationControl 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 informationCCE 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 informationField 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 informationCCE 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 informationCSE 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 informationCOE 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 informationIn 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 informationENGG3380: 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 informationTest 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 informationMidterm 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 informationVHDL 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 informationLogic 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 informationLecture 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 informationSequential 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 informationSign 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 informationIntroduction 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 informationSummary 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 informationProblem 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 informationTutorial: 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 informationLaboratory 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 informationOutline. 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 informationHardware 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 informationDesign 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 informationQuartus 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 informationLogic 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 informationSchedule. 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 informationENGN 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 informationVHDL 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 informationLuleå 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 informationSynthesis 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 informationVerilog 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 informationLab 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 informationDesign 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 informationDesigning 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 informationVHDL: 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 informationstructure 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 informationHere 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 information1 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 informationAPPENDIX 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 informationVHDL 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 informationVHDL/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 informationDIGITAL 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 informationUsing 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 informationAdvanced 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 informationIntroduction 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 informationFPGA 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 informationUsing 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 informationSimulation 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 informationCprE 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 informationFPGA 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 informationDesign 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 informationIT 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 informationVHDL 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 informationAbi 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 informationHardware 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 informationChapter 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 informationTwo 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 informationECEU530. 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 informationProgrammable 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 informationDesign 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 informationAssignment 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 informationCOVER 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 informationEE 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 informationProgrammable 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 information1. 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 informationOUTLINE 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 informationENGR 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 informationSequential 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 informationStep 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 informationLecture 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 informationVHDL 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 informationNote: 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 informationDESIGN 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 informationVerilog 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 informationSimulation 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 informationAn 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 informationChip 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 informationVHDL. 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 informationLecture 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 informationPart 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 informationLab 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 informationPollard 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 informationThe 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 informationEITF35 - 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 informationLattice 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 informationVHDL. 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 informationEITF35: 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 informationVHDL 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 informationECE 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 informationMicroprogram 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 informationIntroduction 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 informationARM 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 informationCPE 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 informationJUNE, 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 informationLaboratory 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 informationVHDL: 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 informationECE 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