Books | ALBI_Books | Fig_23

-- Automatically generated using Goals v1.0.0.169    20/10/2016 12:16:36
-----------------------------
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.numeric_std.all;
use work.components.all;
-----------------------------
entity dp is
    port
        (
        
        -- Inputs from control unit
        ctr_mux2_0           :    in    std_logic;    --(y1)
        br_en                :    in    std_logic;    --(y2)
        ctr_mux1_0           :    in    std_logic;    --(y3)
        ctr_mux0             :    in    std_logic;    --(y4)
        ir2_en               :    in    std_logic;    --(y5)
        ctr_mux1_2           :    in    std_logic;    --(y6)
        bor_en               :    in    std_logic;    --(y7)
        ralu_en              :    in    std_logic;    --(y8)
        ctr_mux2_1           :    in    std_logic;    --(y9)
        pc_en                :    in    std_logic;    --(y10)
        inpr_en              :    in    std_logic;    --(y11)
        ctr_mux1_1           :    in    std_logic;    --(y12)
        m1_rdwr              :    in    std_logic;    --(y13)
        m0_rdwr              :    in    std_logic;    --(y14)
        ctr_mux2_2           :    in    std_logic;    --(y15)
        rialu_en             :    in    std_logic;    --(y16)
        pc_count             :    in    std_logic;    --(y17)
        ir1_en               :    in    std_logic;    --(y18)
        
        -- Inputs from outside
        clk                  :    in    std_logic;
        rst                  :    in    std_logic;
        ext_adr              :    in    std_logic_vector(15 downto 0);
        ext_out              :    in    std_logic_vector(15 downto 0);
        data_in              :    in    std_logic_vector(15 downto 0);
        
        -- Outputs to control unit
        ir1_9                :    out   std_logic;    --(x1)
        ir1_10               :    out   std_logic;    --(x2)
        ir1_8                :    out   std_logic;    --(x3)
        comp4_1_dout         :    out   std_logic;    --(x10)
        
        -- Outputs to outside
        ext_in               :    out   std_logic_vector(15 downto 0)
        );

end dp;
-----------------------------------------------
architecture arc_dp of dp is
    signal mux1_dout          :    std_logic_vector (15 downto 0);
    signal mux2_dout          :    std_logic_vector (15 downto 0);
    signal mux0_dout          :    std_logic_vector (3 downto 0);
    signal alu_alu            :    std_logic_vector (15 downto 0);
    signal bor_dout           :    std_logic_vector (15 downto 0);
    signal br_dout            :    std_logic_vector (15 downto 0);
    signal ialu_ialu          :    std_logic_vector (15 downto 0);
    signal inpr_dout          :    std_logic_vector (15 downto 0);
    signal ir1_dout           :    std_logic_vector (15 downto 0);
    signal ir2_dout           :    std_logic_vector (15 downto 0);
    signal m0_dout            :    std_logic_vector (15 downto 0);
    signal m1_dout            :    std_logic_vector (15 downto 0);
    signal pc_dout            :    std_logic_vector (15 downto 0);
    signal ralu_dout          :    std_logic_vector (15 downto 0);
    signal rialu_dout         :    std_logic_vector (15 downto 0);
    signal ctr_mux1           :    std_logic_vector (2 downto 0);
    signal ctr_mux2           :    std_logic_vector (2 downto 0);
begin
    
    ---------
    -- Mux 1
    ---------
    u1_mux1       :    mux_6x16           port map (ext_adr, ir2_dout, pc_dout, inpr_dout, br_dout, ralu_dout, ctr_mux1, mux1_dout);
    
    ---------
    -- Mux 2
    ---------
    u2_mux2       :    mux_6x16           port map (bor_dout, m1_dout, ir2_dout, br_dout, m0_dout, rialu_dout, ctr_mux2, mux2_dout);
    
    ---------
    -- Mux 0
    ---------
    u3_mux0       :    mux_2x4            port map (ir1_dout(3 downto 0), ir1_dout(7 downto 4), ctr_mux0, mux0_dout);
    
    ---------
    -- ALU
    ---------
    u4_alu        :    alub               port map (br_dout, ir2_dout, ir1_dout(15 downto 11), alu_alu);
    
    ---------
    -- IALU
    ---------
    u5_ialu       :    ialub              port map (ir2_dout, br_dout, ialu_ialu);
    
    ---------
    -- ir2
    ---------
    u6_ir2        :    reg_16bit          port map (clk, rst, mux2_dout, ir2_en, ir2_dout);
    
    ---------
    -- br
    ---------
    u7_br         :    reg_16bit          port map (clk, rst, mux2_dout, br_en, br_dout);
    
    ---------
    -- ir1
    ---------
    u8_ir1        :    reg_16bit          port map (clk, rst, m0_dout, ir1_en, ir1_dout);
    
    ---------
    -- rialu
    ---------
    u9_rialu      :    reg_16bit          port map (clk, rst, ialu_ialu, rialu_en, rialu_dout);
    
    ---------
    -- ralu
    ---------
    u10_ralu      :    reg_16bit          port map (clk, rst, alu_alu, ralu_en, ralu_dout);
    
    ---------
    -- inpr
    ---------
    u11_inpr      :    reg_16bit          port map (clk, rst, data_in, inpr_en, inpr_dout);
    
    ---------
    -- bor
    ---------
    u12_bor       :    bor_4adr_16bit     port map (clk, rst, mux0_dout, mux1_dout, bor_en, bor_dout);
    
    ---------
    -- m0
    ---------
    u13_m0        :    ram_16adr_16bit    port map (clk, mux1_dout, ext_out, m0_rdwr, m0_dout);
    
    ---------
    -- m1
    ---------
    u14_m1        :    ram_16adr_16bit    port map (clk, mux1_dout, ext_out, m1_rdwr, m1_dout);
    
    ---------
    -- pc
    ---------
    u15_pc        :    counter_p_16bit    port map (clk, rst, pc_en, pc_count, mux2_dout, pc_dout);
    
    ---------
    -- comp4_1
    ---------
    u16_comp4_1    :    g_comp          generic map (comp_kind => "eq", size => 4) port map (ir1_dout(3 downto 0), "0000", comp4_1_dout);
    
    -----------------------
    -- Additional Signals
    -----------------------
    
    ctr_mux1           <=    ctr_mux1_2 & ctr_mux1_1 & ctr_mux1_0;
    ctr_mux2           <=    ctr_mux2_2 & ctr_mux2_1 & ctr_mux2_0;
    ext_in             <=    mux2_dout;
    ir1_9              <=    ir1_dout(9);
    ir1_10             <=    ir1_dout(10);
    ir1_8              <=    ir1_dout(8);
    
    
end  arc_dp;
-----------------------------------------------
configuration cfg_dp of dp is
    for arc_dp
    end for;
end cfg_dp;
-----------------------------

Synthezza logo White 2020.png

PRODUCTS

Synthagate—HLS & RTL

     Synthagate Overview

     What makes Synthagate different

     Examples of High Level and RTL Design

          Synthesis From GUI

          Synthesis From SystemC

          Synthesis From VHDL

Logic Synthesizer

     Overview
     Logic Synthesizer Experiments

     Benchmarks

DESIGN TECHNOLOGY

Algorithmic State machines in HLS

     What is Algorithmic State Machine?

     Time in ASM

     ASM in GUI, System C and VHDL

     ASM Transformations

          Asm Combining

          Asm Minimization

          SubAsm Inclusion

High Level Synthesis

     How Does Synthagate Work

     ASM Creator Short Manual

Synthesis at Register Transfer Level (RTL)

     Data Path

     Control Unit

     Top Design

BOOKS

  

DEMO SERIES

  

COMPANY

     About Us

     Contact US

  

Copyright © 2013 - 2020 Synthezza Corporation. All Rights Reserved

Synthezza logo navy.png