1 / 16

VHDL Structural Architecture

VHDL Structural Architecture. ENG2410 Week #5. dataflow. VHDL Design Styles. VHDL Design Styles. behavioral (algorithmic). structural. Components and interconnects. Concurrent statements. Sequential statements. Registers State machines Test benches.

gayletate
Download Presentation

VHDL Structural Architecture

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. VHDLStructural Architecture ENG2410 Week #5

  2. dataflow VHDL Design Styles VHDL Design Styles behavioral (algorithmic) structural Components and interconnects Concurrent statements Sequential statements • Registers • State machines • Test benches Subset most suitable for synthesis

  3. Example – 4-bit Equality Specifications: • Input: 2 vectors A(3:0) and B(3:0) • Output: One bit, E, which is 1 if A and B are bitwise equal, 0 otherwise

  4. Design • Hierarchical design seems a good approach • Decompose the problem into four 1-bit comparison circuits and an additional circuit that combines the four comparison circuit outputs to obtain E. • One module/bit • Final module for E

  5. Design for MX module • Logic function is • Define the output of the circuit to be: • `0’ if both inputs are similar and • `1’ if they are different? • Can implement as

  6. Design for ME module • Final E is 1 only if all intermediate values are 0 • So • And a design is

  7. Overall Design

  8. Overall Design

  9. MX Module: Data Flow ND_1 Bi_n entity mx_module is port ( Ai, Bi: in std_logic; Ei : out std_logic); end entity mx_module; architecture dataflow of mx_module is Signal Ai_n, Bi_n, ND_1, ND_2: std_logic; begin Ai_n <= not Ai; Bi_n <= not Bi; ND_1 <= Ai and B_n; ND_2 <= Bi and A_n; Ei <= ND_1 or ND_2; end architecture dataflow; Interface Ai_n ND_2 Functionality

  10. ME Module: Structural entity ME_module is port ( A: in std_logic_vector(3 downto 0); B: in std_logic_vector(3 downto 0); E: out std_logic); end entity ME_module; architecture structural of ME_module is component mx_module port ( Ai, Bi: in std_logic; Ei : out std_logic); end component; Signal E0,E1,E2,E3: std_logic; begin mx0: mx_module port map (A(0), B(0), E0); mx1: mx_module port map (A(1), B(1), E1); mx2: mx_module port map (A(2), B(2), E2); mx3: mx_module port map (A(3), B(3), E3); E <= E0 nor E1 nor E2 nor E3; end architecture structural; Interface Functionality

  11. Decoder: Data Flow Example: 2-to-4 decoder D3 entity dec_2_to_4 is port ( A0, A1: in std_logic; D0, D1, D2, D3: out std_logic); end entity decoder_2_to_4; architecture dataflow1 of dec_2_to_4 is Signal A0_n, A1_n: std_logic; begin A0_n <= not A0; A1_n <= not A1; D0 <= A0_n and A1_n; D1 <= A0 and A1_n; D2 <= A0_n and A1; D3 <= A0 and A1; end architecture dataflow1; A(1) D2 Interface A(0) D1 D0 A0_n A1_n Functionality

  12. Structural VHDL Descriptionof 2-to-4 Line Decoder

  13. Structural VHDL Description(Entity Declaration) -- 2-to-4 Line Decoder; structural VHDL Description libraryieee; use ieee.std_logic_1164.all entity decoder_2_4_w_enable is port (EN, A0, A1 : instd_logic; D0, D1, D2, D3 : outstd_logic); end decoder_2_to_4_w_enable;

  14. Structural VHDL Description(Components) architecture structural1_1 of decoder_2_to_4_w_enable is component NOT1 port(in1: instd_logic; out1: outstd_logic); end component; component AND2 port(in1, in2: instd_logic; out1: outstd_logic); end component;

  15. Structural VHDL Description (Signals) A0_n N0 A1_n N1 N2 N3

  16. Structural VHDL Description(Connecting components) architecture structural1_1 of decoder_2_to_4_w_enable is -- component NOT1 declaration -- component NAND2 signal A0_n, A1_n, N0, N1, N2, N3: std_logic; begin g0: NOT1 port map(in1 => A0, out1 => A0_n); g1: NOT1 port map(in1 => A1, out1 => A1_n); g2: AND2 port map(in1 => A0_n, in2 => A1_n, out1 => N0); g3: AND2 port map(in1 => A0, in2 => A1_n, out1 => N1); g4: AND2 port map(in1 => A0_n, in2 => A1_n, out1 => N2); g5: AND2 port map(in1 => A0, in2 => A1, out1 => N3); g6: AND2 port map(in1 =>EN, in2 => N0, out1 => D0); g7: AND2 port map(in1 => EN, in2 => N1, out1 => D1); g8: AND2 port map(in1 => EN, in2 => N2, out1 => D2); g9: AND2 port map(in1 => EN, in2 => N3, out1 => D3); end structural_1;

More Related