--- WARNING CS0 and WE0 are screwed up, corected by swapping the asignments..!
|
|
- Nelson Hopkins
- 6 years ago
- Views:
Transcription
1 ---- TOPLEVEL NAME : toplevel.vhd DESCRIPTION : The Toplevel of the project NOTES : REVISION HISTORY : Date Programmer Description /3/1999 Mustafa Dagtekin Finalized WARNING CS0 and WE0 are screwed up, corected by swapping the asignments..! Toplevel of the FPGA modules library ieee use ieee.std_logic_1164.all use IEEE.STD_Logic_unsigned.all use IEEE.STD_Logic_arith.all use work.all Signal Declarations entity toplevel is port ( clock reset -- input signals for video mode registers pci_data_in : in std_logic_vector(19 downto 0 pci_vmr_select : in std_logic_vector(1 downto 0 -- inputs to address decoder pci_cs pci_write pci_write_backup pci_read pci_read_backup pci_wr la : in std_logic_vector(24 downto output signals from controller & address_decoder ff_enable : out std_logic_vector(18 downto 0 cs_mem : out std_logic_vector(3 downto 0 oe_mem : out std_logic_vector(3 downto 0 we_mem : out std_logic_vector(3 downto 0 --freeze ---TEST LINE -- output signals from sync_generator
2 HSync_Out HBlank VSync_Out VBlank blank sync_out --buffer_no --TEST LINE --output signals from delayed blank d_blank d_sync end toplevel -- output of address generator address : out std_logic_vector(19 downto 0) architecture rtl of toplevel is Component Declarations component sync_gen port ( clock reset_sync load_vmr HSon : in std_logic_vector (4 downto 0) HSoff : in std_logic_vector (7 downto 0) HBoff : in std_logic_vector (8 downto 0) LineLength : in std_logic_vector (10 downto 0 VBon : in std_logic_vector (9 downto 0) VSon : in std_logic_vector (9 downto 0) VSoff : in std_logic_vector (9 downto 0) FrameSize : in std_logic_vector (9 downto 0) HSync HBlank VSync VBlank blank sync buffer_no reset_address : out std_logic end component component controller port ( clock reset blank buffer_no pci_cs pci_write pci_read pci_wr
3 pci_on freeze_on la : in std_logic_vector (24 downto 22 reset_sync ff_enable : out std_logic_vector(18 downto 0 cs_mem : out std_logic_vector(3 downto 0 oe_mem : out std_logic_vector(3 downto 0 we_mem : out std_logic_vector(3 downto 0 load_vmr_out : out std_logic -- freeze : out std_logic ---test line!! end component component address_counter port ( clock reset_address disable_address address : out std_logic_vector(19 downto 0) end component component vmr port ( clock reset load_vmr pci_data_in : in std_logic_vector(19 downto 0 pci_vmr_select : in std_logic_vector(1 downto 0 HSon : out std_logic_vector (4 downto 0 HSoff : out std_logic_vector (7 downto 0 HBoff : out std_logic_vector (8 downto 0 LineLength : out std_logic_vector (10 downto 0 VBon : out std_logic_vector (9 downto 0 VSon : out std_logic_vector (9 downto 0 VSoff : out std_logic_vector (9 downto 0 FrameSize : out std_logic_vector (9 downto 0 pci_on freeze_on : out std_logic end component component delayed_blank port ( clock reset blank sync d_blank d_sync end component : out std_logic signal reset_sync signal buffer_no_sig signal reset_address signal blank_int signal sync_int signal VBlank_int signal VSync signal HSync signal load_vmr signal HSon : std_logic_vector (4 downto 0 signal HSoff : std_logic_vector (7 downto 0 signal HBoff : std_logic_vector (8 downto 0 signal LineLength : std_logic_vector (10 downto 0
4 signal VBon : std_logic_vector (9 downto 0 signal VSon : std_logic_vector (9 downto 0 signal VSoff : std_logic_vector (9 downto 0 signal FrameSize : std_logic_vector (9 downto 0 signal interlaced_bit signal pci_on signal freeze_on blank <= VBlank_int VBlank <= blank_int -- sync <= sync_int sync_out <= not sync_int VSync_Out <= not VSync HSync_Out <= not HSync -- address(0) <= interlaced_bit -- buffer_no <= buffer_no_sig Component Instantiations sync_i: sync_gen port map ( clock => clock, reset_sync => reset_sync, load_vmr => load_vmr, HSon => HSon, HSoff => HSoff, HBoff => HBoff, LineLength => LineLength, VBon => VBon, VSon => VSon, VSoff => VSoff, FrameSize => FrameSize, HSync => HSync, HBlank => HBlank, VSync => VSync, VBlank => VBlank_int, blank => blank_int, sync => sync_int, buffer_no => buffer_no_sig, reset_address => reset_address ctrl_i: controller port map ( clock => clock, reset => reset, blank => blank_int, buffer_no => buffer_no_sig, pci_cs => pci_cs, pci_write => pci_write, pci_read => pci_read, pci_wr => pci_wr, pci_on => pci_on, freeze_on => freeze_on, la => la, reset_sync => reset_sync, ff_enable => ff_enable, cs_mem => cs_mem, oe_mem => oe_mem, we_mem => we_mem, load_vmr_out => load_vmr -- freeze => freeze addr_i: address_counter port map ( clock => clock,
5 reset_address => reset_address, disable_address => blank_int, address => address(19 downto 0) vmr_i : vmr port map ( clock, reset, load_vmr, pci_data_in, pci_vmr_select, HSon, HSoff, HBoff, LineLength, VBon, VSon, VSoff, FrameSize, pci_on, freeze_on delayed_blank_i: delayed_blank port map ( clock, reset, blank_int, sync_int, d_blank, d_sync end rtl
6 ---- CONTROLLER NAME : controller.vhd DESCRIPTION : The controller and the address decoder NOTES : REVISION HISTORY : Date Programmer Description /3/1999 Mustafa Dagtekin Finalized -- library ieee use ieee.std_logic_1164.all use IEEE.STD_Logic_unsigned.all use IEEE.STD_Logic_arith.all use work.all Signal Declarations entity controller is! ---! --- port ( clock reset blank buffer_no pci_cs pci_write pci_read -- read/write signals seperate!! -- read/write signals seperate!! pci_wr pci_on freeze_on --to set the freeze frame mode! la : in std_logic_vector (24 downto 22 reset_sync ff_enable : out std_logic_vector(18 downto 0 cs_mem : out std_logic_vector(3 downto 0 oe_mem : out std_logic_vector(3 downto 0 we_mem : out std_logic_vector(3 downto 0 load_vmr_out : out std_logic -- freeze : out std_logic --TEST!!!! end controller architecture behaviour of controller is type states is (reset_state, mode2, blank_state, mode3, freeze_frame signal CurrentState, NextState : states --signal rw_mem : std_logic_vector(3 downto 0 signal merged : std_logic_vector(30 downto 0 signal cont_ffen: std_logic_vector(8 downto 0
7 signal cont_cs : std_logic_vector(3 downto 0 signal cont_oe : std_logic_vector(3 downto 0 signal cont_we_int : std_logic_vector(3 downto 0 signal cont_we : std_logic_vector(3 downto 0 signal ad_ffen : std_logic_vector(9 downto 0 signal ad_cs : std_logic_vector(3 downto 0 signal ad_oe : std_logic_vector(3 downto 0 signal ad_we : std_logic_vector(3 downto 0 signal ad_out : std_logic_vector(3 downto 0 signal load_vmr cont: process ( CurrentState, blank, buffer_no, freeze_on) case CurrentState is when reset_state => reset_sync <= 0 cont_ffen <= " " cont_cs <= "1111" cont_oe <= "1111" cont_we_int <= "1111" NextState <= blank_state when mode2 => reset_sync <= 1 cont_ffen <= " " --0,3,9,12,15 cont_cs <= "0000" cont_oe <= "0001" cont_we_int <= "1110" when mode3 => if (freeze_on = 1 ) then Nextstate <= freeze_frame elsif (blank= 1 ) then NextState <= blank_state NextState <= mode2 reset_sync <= 1 cont_ffen <= " " --2,5,8,12,14 cont_cs <= "0000" cont_oe <= "0010" cont_we_int <= "1101" if (freeze_on = 1 ) then Nextstate <= freeze_frame elsif (blank= 1 ) then NextState <= blank_state NextState <= mode3
8 when blank_state => reset_sync <= 1 cont_ffen <= " " cont_cs <= "1111" cont_oe <= "1111" cont_we_int <= "1111" if (blank= 1 ) then NextState <= blank_state elsif (freeze_on = 1 ) then Nextstate <= freeze_frame elsif (buffer_no = 1 ) then NextState <= mode3 NextState <= mode2 when freeze_frame => reset_sync <= 1 cont_ffen <= " " cont_cs <= "0010" cont_oe <= "0010" cont_we_int <= "1111" if (blank= 1 ) then NextState <= blank_state NextState <= freeze_frame when others => end case end process cont reset_sync <= 0 cont_ffen <= " " cont_cs <= "1111" cont_oe <= "1111" cont_we_int <= "1111" NextState <= reset_state st: process (clock,reset) if (reset= 0 ) then CurrentState <= reset_state if clock EVENT and clock= 1 then CurrentState <= NextState end process st -- cont_oe <= not rw_mem cont_we(3 downto 2) <= cont_we_int(3 downto 2 -- write enable! cont_we(1) <= cont_we_int(1) or clock cont_we(0) <= cont_we_int(0) or clock
9 addr: process (la) case la is -- video mode registers when "101" => ad_out <= "1111" load_vmr <= 1 -- lookup table when "001" => ad_out <= "0111" -- 13, 16! load_vmr <= 0 -- pointer memory when "010" => ad_out <= "1011" -- 10, 11! load_vmr <= 0 -- VR1 when "011" => ad_out <= "1101" --1,4 load_vmr <= 0 -- VR2 -- lw/r must be HIGH! when "100" => ad_out <= "1110" --8,17 load_vmr <= 0 end case when others => ad_out <= "1111" load_vmr <= 0 end process addr -- the write enable for chips are "active low" but PLX generates "active high" for writes.. -- pci_wr <= not pci_wr_in --freeze <= freeze_on -- TEST LINE!!!! --ad_cs <= ad_out -- there is an error in this order, the numbers -- are not in actual order.. ad_cs(3) <= ad_out(3) or pci_cs ad_cs(2) <= ad_out(2) or pci_cs ad_cs(0) <= ad_out(1) or pci_cs ad_cs(1) <= ad_out(0) or pci_cs --ad_we <= ad_ffen(7 downto 4 ad_we(3) <= ad_ffen(7) ad_we(2) <= ad_ffen(6)
10 ad_we(0) <= ad_ffen(5) ad_we(1) <= ad_ffen(4) --ad_oe <= not ad_ffen(7 downto 4 --ad_oe <= ad_out(3 downto 0) or (pci_wr_in & pci_wr_in & pci_wr_in & pci_wr_in ad_oe(3) ad_oe(2) ad_oe(0) ad_oe(1) <= ad_out(3) or pci_read <= ad_out(2) or pci_read <= ad_out(1) or pci_read <= ad_out(0) or pci_read ad_ffen(3 downto 0) <= ad_out ad_ffen(7) <= ad_out(3) or pci_write ad_ffen(6) <= ad_out(2) or pci_write ad_ffen(5) <= ad_out(1) or pci_write ad_ffen(4) <= ad_out(0) or pci_write --ad_ffen(9 downto 8) <= not ad_ffen(5 downto 4 ad_ffen(9) <=ad_out(1) or pci_read ad_ffen(8) <=ad_out(0) or pci_read with pci_cs select merged <= cont_ffen & " " & cont_cs & cont_oe & cont_we when 1, " " & ad_ffen & ad_cs & ad_oe & ad_we when 0, (others => 1 ) when others --with pci_on select -- merged <= cont_ffen & " " & cont_cs & cont_oe & cont_we when 0, -- " " & ad_ffen & ad_cs & ad_oe & ad_we when 1, -- (others => 1 ) when others end behaviour -- to load the video mode registers we need a combinational logic -- that checks PCI_CS and PCI_WR_IN load_vmr_out <= (not pci_cs) and (not pci_write) and load_vmr ff_enable <= merged (30 downto 12 cs_mem <= merged (11 downto 8 oe_mem <= merged (7 downto 4 we_mem <= merged (3 downto 0
11 ---- ADDRESS_COUNTER NAME : address_counter.vhd DESCRIPTION : The address counter NOTES : REVISION HISTORY : Date Programmer Description /3/1999 Mustafa Dagtekin Finalized -- library ieee use ieee.std_logic_1164.all use IEEE.STD_Logic_unsigned.all use IEEE.STD_Logic_arith.all use work.all entity address_counter is port ( clock reset_address disable_address address : out std_logic_vector(19 downto 0) end address_counter architecture behaviour of address_counter is signal address_int : std_logic_vector(19 downto 0 process(clock, reset_address) if reset_address= 0 then address_int <= " " if clock EVENT and clock= 1 then end process end behaviour if disable_address = 0 then address_int <= address_int + 1 address_int <= address_int address <= address_int
12 ---- VMR NAME : vmr.vhd DESCRIPTION : The video mode registers NOTES : REVISION HISTORY : Date Programmer Description /3/1999 Mustafa Dagtekin Finalized -- library ieee use ieee.std_logic_1164.all use IEEE.STD_Logic_unsigned.all use IEEE.STD_Logic_arith.all use work.all entity vmr is end vmr port ( clock reset load_vmr pci_data_in : in std_logic_vector(19 downto 0 pci_vmr_select : in std_logic_vector(1 downto 0 HSon : out std_logic_vector (4 downto 0 HSoff : out std_logic_vector (7 downto 0 HBoff : out std_logic_vector (8 downto 0 LineLength : out std_logic_vector (10 downto 0 VBon : out std_logic_vector (9 downto 0 VSon : out std_logic_vector (9 downto 0 VSoff : out std_logic_vector (9 downto 0 FrameSize : out std_logic_vector (9 downto 0 -- this register is set when pci takes over pci_on -- freeze frame mode support! freeze_on : out std_logic architecture rtl of vmr is signal video_mode_regs : std_logic_vector(72 downto 0 signal pci_on_reg signal freeze_on_reg process(clock,reset) if (reset= 0 ) then video_mode_regs <= (others => 0 pci_on_reg <= 0 freeze_on_reg <= 0 --video_mode_regs(4 downto 0) <= "00010" --video_mode_regs(12 downto 5) <= " " --video_mode_regs(21 downto 13) <= " "
13 --video_mode_regs(32 downto 22) <= " " --video_mode_regs(42 downto 33) <= " " --video_mode_regs(52 downto 43) <= " " --video_mode_regs(62 downto 53) <= " " --video_mode_regs(72 downto 63) <= " " if clock EVENT and clock= 1 then if (load_vmr= 1 ) then case (pci_vmr_select) is when "00" => video_mode_regs(19 downto 0) <= pci_data_in when "01" => video_mode_regs(39 downto 20) <= pci_data_in when "10" => video_mode_regs(59 downto 40) <= pci_data_in when "11" => video_mode_regs(72 downto 60) <= pci_data_in(12 downto 0 pci_on_reg <= pci_data_in(13 freeze_on_reg <= pci_data_in(14 when others => video_mode_regs <= video_mode_regs pci_on_reg <= pci_on_reg freeze_on_reg <= freeze_on_reg end case video_mode_regs <= video_mode_regs pci_on_reg <= pci_on_reg freeze_on_reg <= freeze_on_reg end process HSon <= video_mode_regs(4 downto 0 HSoff <= video_mode_regs(12 downto 5 HBoff <= video_mode_regs(21 downto 13 LineLength <= video_mode_regs(32 downto 22 VBon <= video_mode_regs(42 downto 33 VSon <= video_mode_regs(52 downto 43 VSoff <= video_mode_regs(62 downto 53 FrameSize <= video_mode_regs(72 downto 63 pci_on <= pci_on_reg freeze_on <= freeze_on_reg end rtl
14 ---- SYNC_GEN NAME : sync_gen.vhd DESCRIPTION : The sync generator NOTES : REVISION HISTORY : Date Programmer Description /3/1999 Mustafa Dagtekin Finalized -- library ieee use ieee.std_logic_1164.all use IEEE.STD_Logic_unsigned.all use IEEE.STD_Logic_arith.all library lpm use lpm.lpm_components.all entity sync_gen is end sync_gen port ( clock reset_sync load_vmr HSon : in std_logic_vector (4 downto 0 HSoff : in std_logic_vector (7 downto 0 HBoff : in std_logic_vector (8 downto 0 LineLength : in std_logic_vector (10 downto 0 VBon : in std_logic_vector (9 downto 0 VSon : in std_logic_vector (9 downto 0 VSoff : in std_logic_vector (9 downto 0 FrameSize : in std_logic_vector (9 downto 0 HSync HBlank VSync VBlank blank sync buffer_no -- line : out std_logic_vector(9 downto 0) -- pixel : out std_logic_vector(10 downto 0 reset_address : out std_logic architecture behaviour of sync_gen is signal line_counter : std_logic_vector (9 downto 0) signal pixel_counter : std_logic_vector (10 downto 0) signal HSync_sig signal HBlank_sig signal VSync_sig signal VBlank_sig signal buffer_no_sig signal reset_address_sig signal comp_framesize signal comp_framesize_reg signal field
15 process(clock) if((reset_sync or load_vmr) = 0 ) then reset_address_sig <= 0 buffer_no_sig <= 0 pixel_counter <=" " line_counter <=" " HBlank_sig <= 1 HSync_sig <= 0 VBlank_sig <= 0 VSync_sig <= 0 comp_framesize_reg <= 0 field <= 0 elsif clock EVENT and clock= 1 then if (pixel_counter = LineLength) then HBlank_sig <= 1 pixel_counter <= (others => 0 sig xor field n en if(comp_framesize_reg = 1 ) then Vblank_sig <= 0 line_counter <= (others => 0 field <= not field reset_address_sig <= field buffer_no_sig <= not (buffer_no_ line_counter <= line_counter + 1 reset_address_sig <= 1 if (line_counter = VBon) then VBlank_sig <= 1 elsif (line_counter = VSon) the VSync_sig <= 1 elsif (line_counter = VSoff) th VSync_sig <= 0 VBlank_sig <= VBlank_sig VSync_sig <= VSync_sig pixel_counter <= pixel_counter + 1 if (pixel_counter = "000000"&HSon) then HSync_sig <= 1 elsif (pixel_counter = "000"&Hsoff) then HSync_sig <= 0 elsif (pixel_counter = "00"&HBoff) then HBlank_sig <= 0 HBlank_sig <= HBlank_sig HSync_sig <= HSync_sig
16 comp_framesize_reg <= comp_framesize end process --process (line_counter) if (line_counter = FrameSize) then -- comp_framesize <= comp_framesize <= end process lpm_comp_i: lpm_compare generic map (lpm_width => 10, lpm_pipeline => 1, lpm_type => l_compare ) port map ( dataa => line_counter(9 downto 0), datab => FrameSize(9 downto 0), aeb => comp_framesize, clock => clock blank <= HBlank_sig or VBlank_sig sync <= HSync_sig or VSync_sig VBlank <= VBlank_sig VSync <= VSync_sig HBlank <= HBlank_sig HSync <= HSync_sig buffer_no <= buffer_no_sig reset_address <= reset_address_sig line <= line_counter pixel <= pixel_counter end behaviour
17 ---- DELAYED_BLANK NAME : delayed_blank.vhd DESCRIPTION : This module creates the synchronization signals the DAC module NOTES : REVISION HISTORY : Date Programmer Description /3/1999 Mustafa Dagtekin Finalized -- library ieee use ieee.std_logic_1164.all use IEEE.STD_Logic_unsigned.all use IEEE.STD_Logic_arith.all use work.all entity delayed_blank is port (clock reset blank sync d_blank d_sync : out std_logic end delayed_blank architecture rtl of delayed_blank is signal int1_blank signal int1_sync process (clock, reset) if reset= 0 then int1_blank <= 0 int1_sync <= 0 --int3_blank <= 0 --int4_blank <= 0 end rtl elsif clock EVENT and clock= 1 then end process int1_blank <= not blank d_blank <= int1_blank int1_sync <= not sync d_sync <= int1_sync
18
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 informationThe University of Alabama in Huntsville Electrical and Computer Engineering CPE/EE 422/522 Spring 2005 Homework #6 Solution
5.3(a)(2), 5.6(c)(2), 5.2(2), 8.2(2), 8.8(2) The University of Alabama in Huntsville Electrical and Computer Engineering CPE/EE 422/522 Spring 25 Homework #6 Solution 5.3 (a) For the following SM chart:
More informationTri-State Bus Implementation
Tri-State Bus Implementation Danny Mok Altera HK FAE (dmok@altera.com) Sample Code library ieee; use ieee.std_logic_1164.all; library lpm; use lpm.lpm_components.all; entity tri_bus is port (a,b : in std_logic_vector(7
More informationVHDL 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[VARIABLE declaration] BEGIN. sequential statements
PROCESS statement (contains sequential statements) Simple signal assignment statement
More informationUsing Library Modules in VHDL Designs
Using Library Modules in VHDL Designs This tutorial explains how Altera s library modules can be included in VHDL-based designs, which are implemented by using the Quartus R II software. Contents: Example
More informationUsing Library Modules in VHDL Designs
Using Library Modules in VHDL Designs This tutorial explains how Altera s library modules can be included in VHDL-based designs, which are implemented by using the Quartus R II software. Contents: Example
More informationUsing Library Modules in VHDL Designs. 1 Introduction. For Quartus II 12.1
Using Library Modules in VHDL Designs For Quartus II 12.1 1 Introduction This tutorial explains how Altera s library modules can be included in VHDL-based designs, which are implemented by using the Quartus
More informationLab 3. Advanced VHDL
Lab 3 Advanced VHDL Lab 3 Advanced VHDL This lab will demonstrate many advanced VHDL techniques and how they can be used to your advantage to create efficient VHDL code. Topics include operator balancing,
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 informationExample 15: Moving Sprites with Flash Background
Displaying an Image Read from Flash Memory 95 Listing 2.5 (cont.) vga_flash_n2_top.vhd clr
More informationECE 448 Lecture 4. Sequential-Circuit Building Blocks. Mixing Description Styles
ECE 448 Lecture 4 Sequential-Circuit Building Blocks Mixing Description Styles George Mason University Reading Required P. Chu, FPGA Prototyping by VHDL Examples Chapter 4, Regular Sequential Circuit Recommended
More informationECE 545 Lecture 6. Behavioral Modeling of Sequential-Circuit Building Blocks. George Mason University
ECE 545 Lecture 6 Behavioral Modeling of Sequential-Circuit Building Blocks George Mason University Required reading P. Chu, RTL Hardware Design using VHDL Chapter 5.1, VHDL Process Chapter 8, Sequential
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 informationThe University of Alabama in Huntsville ECE Department CPE Final Exam Solution Spring 2004
The University of Alabama in Huntsville ECE Department CPE 526 01 Final Exam Solution Spring 2004 1. (15 points) An old Thunderbird car has three left and three right tail lights, which flash in unique
More informationDigital Design Laboratory Lecture 2
ECE 280 / CSE 280 Digital Design Laboratory Lecture 2 Adder Design Basic building block is a full adder Chained together as a ripple carry adder Carry lookahead adder is an other option Propagate and generate
More information3e library declarations library IEEE; use IEEE.std_logic_1164.all;
3e8.54 XSvhd.4Please see the VHDL program below or in the accompanying.zip file (if published by your instructor). This program was kindly written and contributed by Xilinx application engineering, but
More informationEsempio FSM Description : library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_arith.all; use IEEE.std_logic_unsigned.all; entity esempiofsm is port ( clk: in STD_LOGIC; p: in STD_LOGIC; reset:
More informationEEE8076. Reconfigurable Hardware Design (coursework) Module Outline. Dr A. Bystrov Dr. E.G. Chester. Autumn
EEE8076 Reconfigurable Hardware Design (coursework) Module Outline Dr A. Bystrov Dr. E.G. Chester Autumn 2010 1 2 3 4 5 6 7 8 9 10 11 12 Altera UP2 development board, Flex EPF10K70 FPGA www.altera.com/literature/univ/upds.pdf
More informationChapter 8 VHDL Code Examples
APPENDIX I Chapter 8 VHDL Code Examples I.1 Introduction Two example VHDL code designs are presented in Chapter 8, the first for controlling the AD7524 digital-to-analogue converter and the second for
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 informationConstructing VHDL Models with CSA
Constructing VHDL Models with CSA List all components (e.g., gate) inclusive propagation delays. Identify input/output signals as input/output ports. All remaining signals are internal signals. Identify
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 informationDesign Problem 4 Solutions
CSE 260 Digital Computers: Organization and Logical Design Design Problem 4 Solutions Jon Turner The block diagram appears below. The controller includes a state machine with three states (normal, movecursor,
More informationIntroduction to VHDL #3
ECE 322 Digital Design with VHDL Introduction to VHDL #3 Lecture 7 & 8 VHDL Modeling Styles VHDL Modeling Styles Dataflow Concurrent statements Structural Components and interconnects Behavioral (sequential)
More informationCOVER SHEET: Total: Regrade Info: 2 (6 points) 3 (8 points) 4 (10 points) 8 (12 points) 6 (6 points) 7 (6 points) 9 (30 points) 10 (4 points)
EEL 4712 Midterm 2 Spring 2010 VERSION 1 Name: UFID: Sign your name here if you would like for your test to be returned in class: IMPORTANT: Please be neat and write (or draw) carefully. If we cannot read
More informationDesign Guidelines for Using DSP Blocks
Design Guidelines for Using DSP Blocks in the Synplify Software April 2002, ver. 1.0 Application Note 193 Introduction Altera R Stratix TM devices have dedicated digital signal processing (DSP) blocks
More informationWriting VHDL for RTL Synthesis
Writing VHDL for RTL Synthesis Stephen A. Edwards, Columbia University December 21, 2009 The name VHDL is representative of the language itself: it is a two-level acronym that stands for VHSIC Hardware
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 informationMassachusetts Institute of Technology Department of Electrical Engineering and Computer Science Introductory Digital Systems Laboratory
Problem Set Issued: March 2, 2007 Problem Set Due: March 14, 2007 Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science 6.111 Introductory Digital Systems Laboratory
More informationDesign a 4 bit-adder. Then design a 4-7 decoder to show the outputs. Output Sum(4 bits) Adder. Output carry(1 bit)
Csc 343 Lab 2 Sep 28. 07 Objective: Design a 4 bit-adder. Then design a 4-7 decoder to show the outputs. Structure: Input A (4 bits) Input B (4 bit) Adder Output Sum(4 bits) Output carry(1 bit) input cin
More informationDIGITAL LOGIC DESIGN VHDL Coding for FPGAs Unit 6
DIGITAL LOGIC DESIGN VHDL Coding for FPGAs Unit 6 FINITE STATE MACHINES (FSMs) Moore Machines Mealy Machines Algorithmic State Machine (ASM) charts FINITE STATE MACHINES (FSMs) Classification: Moore Machine:
More informationIntel FPGA Integer Arithmetic IP Cores User Guide
Intel FPGA Integer Arithmetic IP Cores User Guide Updated for Intel Quartus Prime Design Suite: 17.1 Subscribe Send Feedback Latest document on the web: PDF HTML Contents Contents 1 Intel FPGA Integer
More informationTiming in synchronous systems
BO 1 esign of sequential logic Outline Timing in synchronous networks Synchronous processes in VHL VHL-code that introduces latches andf flip-flops Initialization of registers Mealy- and Moore machines
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 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 informationDESCRIPTION OF DIGITAL CIRCUITS USING VHDL
DESCRIPTION OF DIGITAL CIRCUITS USING VHDL Combinatinal circuits Sequential circuits Design organization. Generic design Iterative operations Authors: Luis Entrena Arrontes, Celia López, Mario García,
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 informationAdvanced Training Course on FPGA Design and VHDL for Hardware Simulation and Synthesis. 26 October - 20 November, 2009
2065-15 Advanced Training Course on FPGA Design and VHDL for Hardware Simulation and Synthesis 26 October - 20 November, 2009 FPGA Architectures & VHDL Introduction to Synthesis Nizar Abdallah ACTEL Corp.2061
More informationConcurrent & Sequential Stmts. (Review)
VHDL Introduction, Part II Figures in this lecture are from: Rapid Prototyping of Digital Systems, Second Edition James O. Hamblen & Michael D. Furman, Kluwer Academic Publishers, 2001, ISBN 0-7923-7439-
More informationDocument Version: 0.6 Document Date: 15 April 2011 Prepared by: Y. Ermoline for ATLAS Level-1Calorimeter Trigger
ATLAS ATL-DA-EN-0004 EDMS Id: 1100579 ATLAS TDAQ Level-1 Calorimeter Trigger VHLD guidelines Document Version: 0.6 Document Date: 15 April 2011 Prepared by: Y. Ermoline for ATLAS Level-1Calorimeter Trigger
More information310/ ICTP-INFN Advanced Tranining Course on FPGA and VHDL for Hardware Simulation and Synthesis 27 November - 22 December 2006
310/1780-10 ICTP-INFN Advanced Tranining Course on FPGA and VHDL for Hardware Simulation and Synthesis 27 November - 22 December 2006 VHDL & FPGA - Session 2 Nizar ABDALLH ACTEL Corp. 2061 Stierlin Court
More informationThe VHDL Hardware Description Language
The VHDL Hardware Description Language p. 1/? The VHDL Hardware Description Language CSEE W4840 Prof. Stephen A. Edwards Columbia University The VHDL Hardware Description Language p. 2/? Why HDLs? 1970s:
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 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 informationGetting Started with VHDL
Getting Started with VHDL VHDL code is composed of a number of entities Entities describe the interface of the component Entities can be primitive objects or complex objects Architectures are associated
More informationTest Bench. Top Level Model Test Bench MUT
A test bench is usually a simulation-only model used for design verification of some other model(s) to be synthesized. A test bench is usually easier to develop than a force file when verifying the proper
More informationECE 545 Lecture 4. Simple Testbenches. George Mason University
ECE 545 Lecture 4 Simple Testbenches George Mason University Required reading P. Chu, RTL Hardware Design using VHDL Chapter 2.2.4, Testbenches 2 Testbenches ECE 448 FPGA and ASIC Design with VHDL 3 Testbench
More informationDesign Problem 5 Solutions
CS/EE 260 Digital Computers: Organization and Logical Design Design Problem 5 Solutions Jon Turner Due 5/4/04 1. (100 points) In this problem, you will implement a simple shared memory multiprocessor system
More informationCprE 583 Reconfigurable Computing
Recap 4:1 Multiplexer CprE / ComS 583 Reconfigurable Computing Prof. Joseph Zambreno Department of Electrical and Computer Engineering Iowa State University Lecture #18 VHDL for Synthesis I LIBRARY ieee
More informationAltera s Avalon Communication Fabric
Altera s Avalon Communication Fabric p. 1/1 Altera s Avalon Communication Fabric Prof. Stephen A. Edwards sedwards@cs.columbia.edu Columbia University Spring 2007 Altera s Avalon Communication Fabric p.
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 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 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 informationEECE 353: Digital Systems Design Lecture 10: Datapath Circuits
EECE 353: Digital Systems Design Lecture 10: Datapath Circuits Cristian Grecu grecuc@ece.ubc.ca Course web site: http://courses.ece.ubc.ca/353 Introduction to lecture 10 Large digital systems are more
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 informationVHDL for FPGA Design. by : Mohamed Samy
VHDL for FPGA Design by : Mohamed Samy VHDL Vhdl is Case insensitive myvar = myvar = MYVAR IF = if = if Comments start with -- Comments can exist anywhere in the line Semi colon indicates the end of statements
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 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 informationHardware Description Languages. Modeling Complex Systems
Hardware Description Languages Modeling Complex Systems 1 Outline (Raising the Abstraction Level) The Process Statement if-then, if-then-else, if-then-elsif, case, while, for Sensitivity list Signals vs.
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 information-- Fill in values for each generic. -- Fill in values for each signal. SIGNAL load_start : std_ulogic := '1'; SIGNAL clock : std_ulogic := '0';
-- Fill in values for each generic -- Fill in values for each signal SIGNAL load_start : std_ulogic := '1'; SIGNAL clock : std_ulogic := '0'; SIGNAL start : std_ulogic_vector(0 TO 15) := "0000000000000000";
More informationA bird s eye view on VHDL!
Advanced Topics on Heterogeneous System Architectures A bird s eye view on VHDL Politecnico di Milano Conference Room, Bld 20 19 November, 2015 Antonio R. Miele Marco D. Santambrogio Politecnico di Milano
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 informationReview. LIBRARY list of library names; USE library.package.object; ENTITY entity_name IS generic declarations PORT ( signal_name(s): mode signal_type;
LIBRARY list of library names; USE library.package.object; Review ENTITY entity_name IS generic declarations PORT ( signal_name(s): mode signal_type; signal_name(s) : mode signal_type); END ENTITY entity_name;
More informationSenior Project Design Review: Internal Hardware Design of a Microcontroller in VLSI
Senior Project Design Review: Internal Hardware Design of a Microcontroller in VLSI Designers: Shreya Prasad & Heather Smith Advisor: Dr. Vinod Prasad March 11th, 2003 Presentation Outline Project summary
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 informationCS303 LOGIC DESIGN FINAL EXAM
JANUARY 2017. CS303 LOGIC DESIGN FINAL EXAM STUDENT NAME & ID: DATE: Instructions: Examination time: 100 min. Write your name and student number in the space provided above. This examination is closed
More informationDigital System Construction
Digital System Construction FYSIKUM Lecture 4: More VHDL, memory, PRNG Arithmetic Memories Pipelines and buffers Pseudorandom numbers IP core generation in Vivado Introduction to Lab 3 Digital Systemkonstruktion
More informationEEL 4712 Digital Design Test 1 Spring Semester 2008
IMPORTANT: Please be neat and write (or draw) carefully. If we cannot read it with a reasonable effort, it is assumed wrong. Also, as always, the best answer gets the most points. COVER SHEET: Problem:
More informationThe University of Alabama in Huntsville ECE Department CPE Midterm Exam Solution March 2, 2006
The University of Alabama in Huntsville ECE Department CPE 526 01 Midterm Exam Solution March 2, 2006 1. (15 points) A barrel shifter is a shift register in which the data can be shifted either by one
More informationExample 58: Traffic Lights
208 Chapter 8 Listing 8.7(cont.) doorlock2_top.vhd btn012
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 informationAPPLICATION NOTE. A CPLD VHDL Introduction. Introduction. Overview. Entity. XAPP 105 January12, 1998 (Version 1.0) 0 4* Application Note
0 APPLICATION NOTE A CPLD VHDL Introduction XAPP 105 January12, 1998 Version 1.0) 0 4* Application Note Summary This introduction covers the basics of VHDL as applied to Complex Programmable Logic Devices.
More informationLecture 7. Standard ICs FPGA (Field Programmable Gate Array) VHDL (Very-high-speed integrated circuits. Hardware Description Language)
Standard ICs FPGA (Field Programmable Gate Array) VHDL (Very-high-speed integrated circuits Hardware Description Language) 1 Standard ICs PLD: Programmable Logic Device CPLD: Complex PLD FPGA: Field Programmable
More informationECE 545 Lecture 12. FPGA Resources. George Mason University
ECE 545 Lecture 2 FPGA Resources George Mason University Recommended reading 7 Series FPGAs Configurable Logic Block: User Guide Overview Functional Details 2 What is an FPGA? Configurable Logic Blocks
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 informationProblem Set 5 Solutions
Problem Set 5 Solutions library ieee; use ieee.std_logic_1164.all; use work.std_arith.all; -- here is the declaration of entity entity la_rewarder is port (clk, go, SRAM_busy, SRAM_rdy: in std_logic; min:
More informationModeling Complex Behavior
Modeling Complex Behavior Sudhakar Yalamanchili, Georgia Institute of Technology, 2006 (1) Outline Abstraction and the Process Statement Concurrent processes and CSAs Process event behavior and signals
More informationAltera s Avalon Communication Fabric
Altera s Avalon Communication Fabric Stephen A. Edwards Columbia University Spring 2012 Altera s Avalon Bus Something like PCI on a chip Described in Altera s Avalon Memory-Mapped Interface Specification
More informationACS College of Engineering. Department of Biomedical Engineering. Logic Design Lab pre lab questions ( ) Cycle-1
ACS College of Engineering Department of Biomedical Engineering Logic Design Lab pre lab questions (2015-2016) Cycle-1 1. What is a combinational circuit? 2. What are the various methods of simplifying
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 informationECE 448 Lecture 13. FPGA Memories. George Mason University
ECE 448 Lecture 13 FPGA Memories George Mason University Recommended reading Spartan-6 FPGA Block RAM Resources: User Guide Google search: UG383 Spartan-6 FPGA Configurable Logic Block: User Guide Google
More informationCSC / EE Digital Systems Design. Summer Sample Project Proposal 01
THE CATHOLIC UNIVERSITY OF AMERICA SCHOOL OF ENGINEERING DEPARTMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE CSC / EE 519-01 Digital Systems Design Summer 2013 Sample Project Proposal 01 Thursday
More informationDesign Guidelines for Using DSP Blocks
Design Guidelines for Using DSP Blocks in the LeonardoSpectrum Software April 2002, ver. 1.0 Application Note 194 Introduction Altera R Stratix TM devices have dedicated digital signal processing (DSP)
More informationSingle-Cycle CPU VITO KLAUDIO CSC343 FALL 2015 PROF. IZIDOR GERTNER
Single-Cycle CPU CSC343 FALL 2015 PROF. IZIDOR GERTNER 1 Single-Cycle CPU Table of contents 1. Objective... pg. 2 2. Functionality... pg. 3 2.1 Part I (ADD/SUB)... pg. 7 2.2 Part II (ORI & BITWISE OPERATIONS)...
More informationVHDL simulation and synthesis
VHDL simulation and synthesis How we treat VHDL in this course You will not become an expert in VHDL after taking this course The goal is that you should learn how VHDL can be used for simulation and synthesis
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 information8 Register, Multiplexer and
8 Register, Multiplexer and Three-State Inference HDL Compiler can infer Registers (latches and flip flops) Multiplexers Three state gates This chapter discusses methods of inferring different types of
More information13/06/56 8 ก ก. 08-Case Study
8 ก ก ก 1 ก 2 1 3 VHDL DIVIDER200Hz use IEEE.std_logic_1164.all; entity DIVIDER200Hz is generic (fin: integer :=25000000; --Input frequency fout: integer :=200); --Output frequency end DIVIDER200Hz; architecture
More informationDIGITAL LOGIC WITH VHDL (Fall 2013) Unit 6
DIGITAL LOGIC WITH VHDL (Fall 2013) Unit 6 FINITE STATE MACHINES (FSMs) Moore Machines Mealy Machines FINITE STATE MACHINES (FSMs) Classification: Moore Machine: Outputs depend only on the current state
More informationCSE 260 Introduction to Digital Logic and Computer Design. Exam 1. Your name 2/13/2014
CSE 260 Introduction to Digital Logic and Computer Design Jonathan Turner Exam 1 Your name 2/13/2014 1. (10 points) Draw a logic diagram that implements the expression A(B+C)(C +D)(B+D ) directly (do not
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 informationECE 545 Lecture 6. Behavioral Modeling of Sequential-Circuit Building Blocks. Behavioral Design Style: Registers & Counters.
ECE 55 Lecture 6 Behavioral Modeling of Sequential-Circuit Building Blocks Required reading P. Chu, RTL Hardware esign using VHL Chapter 5.1, VHL Process Chapter 8, Sequential Circuit esign: Principle
More informationFPGA.
CMOS TTL Verilog VHDL mshora@yahoo.com 7400. NAND CMOS TTL 1 0 source sink datasheet bounce bounce debunce RS Latch debounce Typical Characteristics NO NC Semiconductor Material Wavelength Colour V F @
More informationVHDL: A Crash Course
VHDL: A Crash Course Dr. Manuel Jiménez With contributions by: Irvin Ortiz Flores Electrical and Computer Engineering Department University of Puerto Rico - Mayaguez Outline Background Program Structure
More informationEL 310 Hardware Description Languages Midterm
EL 3 Hardware Description Languages Midterm 2 3 4 5 Total Name: ID : Notes: ) Please answer the questions in the provided space after each question. 2) Duration is minutes 3) Closed books and closed notes.
More informationCDA 4253 FGPA System Design Xilinx FPGA Memories. Hao Zheng Comp Sci & Eng USF
CDA 4253 FGPA System Design Xilinx FPGA Memories Hao Zheng Comp Sci & Eng USF Xilinx 7-Series FPGA Architecture On-Chip block RAM On-Chip block RAM Distributed RAM by Logic Fabric Distributed RAM by Logic
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 informationDigital Systems Design
Digital Systems Design Review of Combinatorial Circuit Building Blocks: VHDL for Combinational Circuits Dr. D. J. Jackson Lecture 2-1 Introduction to VHDL Designer writes a logic circuit description in
More information