HierarchyFilesModulesSignalsTasksFunctionsHelp
/****************************************************************
 ---------------------------------------------------------------
     Copyright 1999 Sun Microsystems, Inc., 901 San Antonio
     Road, Palo Alto, CA 94303, U.S.A.  All Rights Reserved.
     The contents of this file are subject to the current
     version of the Sun Community Source License, picoJava-II
     Core ("the License").  You may not use this file except
     in compliance with the License.  You may obtain a copy
     of the License by searching for "Sun Community Source
     License" on the World Wide Web at http://www.sun.com.
     See the License for the rights, obligations, and
     limitations governing use of the contents of this file.

     Sun, Sun Microsystems, the Sun logo, and all Sun-based
     trademarks and logos, Java, picoJava, and all Java-based
     trademarks and logos are trademarks or registered trademarks 
     of Sun Microsystems, Inc. in the United States and other
     countries.
 ----------------------------------------------------------------
******************************************************************/

[Up: ucode ucode_dpath_0]
module ucode_dpath (
                    index_byte1_e,
                    index_byte2_e,
                    ie_stall_ucode,
                    ie_kill_ucode,
                    iu_optop,
                    alu_data,
                    archi_data,
                    ucode_addr_d,
                    rs1,
                    rs1_b,
                    rs2,
                    dreg,
                    nxt_ucode_cnt,
                    sel_fxx_default,
                    u_abt_cur,
                    te_ieu_rom,
                    ieu_in_powerdown,
                    sm,
                    sin,
                    reset_l,
                    clk,
                    so,
                    u_addr_st_rd,
                    u_areg0,
                    ucode_porta,
                    ucode_portb,
                    ucode_portc,
                    ialu_a,
                    m_adder_porta,
                    m_adder_portb,
                    a_oprd,
                    a_oprd_0_l,
                    b_oprd,
                    reg5_31,
                    u_f00,
                    u_f01,
                    u_f02,
                    u_f03,
                    u_f04,
                    u_f05,
                    u_f07,
                    u_f08,
                    u_f17,
                    u_f18,
                    u_f19,
                    u_f21,
                    u_f22,
                    u_f23 
                   );

input    [7:0] index_byte1_e;      // E_stage, index_indexbyte1_offest
input    [7:0] index_byte2_e;      // E_stage, nargm_indexbyte2_offest+1
input          ie_stall_ucode;     // IE unit holds off ucode execution
input          ie_kill_ucode;      // IU kill current operation in ucode

input   [31:0] iu_optop;           // the optop IU sent to start ucode
input   [31:0] alu_data;           // ieu_alu data output
input   [31:0] archi_data;         // architecture register output
input   [31:0] ucode_addr_d;       // memory_adder output
 
input   [31:0] rs1;                // always  rs1  = reg[nxt_rs1]
input   [31:0] rs1_b;              // always  rs1  = reg[nxt_rs1], buffered
input   [31:0] rs2;                // Initial rs2  = reg[nxt_rs2]
input   [31:0] dreg;               // always  dreg = reg{d_cache[ucode_addr_d]}

input    [8:0] nxt_ucode_cnt;      // next_state of_the ucode sequencer

input          sel_fxx_default;    // an ucode exception to squash all ucode ctrls
input          u_abt_cur;          // abort current read/write requested by ucode
 
input          te_ieu_rom;         // test enable  for ieu_rom
input          ieu_in_powerdown;   // power down. 0=power_down

input          sm;                 // register scan mode
input          sin;                // register scan_input
input          reset_l;            // reset
input          clk;                // clock

output         so;                 // register scan_output

output  [31:0] u_addr_st_rd;       // ucode to stack_cache  read_address
output  [31:0] u_areg0;            // ucode output of the areg0 register

output  [31:0] ucode_porta;        // ucode output data to ie       porta
output  [31:0] ucode_portb;        // ucode output data to ie       portb
output  [31:0] ucode_portc;        // ucode output data to stcak_/data_cache
 
output  [31:0] ialu_a;             // ucode output data to ie_alu's porta
output  [31:0] m_adder_porta;      // ucode output data to imem_adder's porta
output  [31:0] m_adder_portb;      // ucode output data to imem_adder's portb
 
output  [31:0] a_oprd;             // a_oprd[31:0]
output         a_oprd_0_l;         // a_oprd[0], active low
output  [31:0] b_oprd;             // b_oprd[31:0]
output         reg5_31;            // Temp_reg5[31]

output   [1:0] u_f00;              // field_00: IU_zero_comparator
output   [2:0] u_f01;              // Field_01: Ucode and StacK         WT
output   [1:0] u_f02;              // Field_02: Ucode and Stack         RD
output   [1:0] u_f03;              // Field_03: Ucode and Data_cache
output   [6:0] u_f04;              // Field_04: Ucode and Architech_reg RD
output   [2:0] u_f05;              // Field_05: Ucode and Architech_reg WT
output   [2:0] u_f07;              // Field_07: Integer Unit ALU b_operand
output   [2:0] u_f08;              // Field_08: Read_port_A of temp_regs
output   [1:0] u_f17;              // field_17: IU_adder operations
output  [11:0] u_f18;              // field_18: Branching in ucode
output   [3:0] u_f19;              // field_19: Mem_adder a_operand
output   [1:0] u_f21;              // Field_21: Memory_adder operations
output         u_f22;              // field_22: Sel stack_cache address
output   [1:0] u_f23;              // field_23: Sel alu_adder input port_a


// ------------- declarations ---------------------------------------------

wire     [1:0] u_f00;
wire     [2:0] u_f01;
wire     [1:0] u_f02;
wire     [1:0] u_f03;
wire     [6:0] u_f04;
wire     [2:0] u_f05;
wire     [3:0] u_f06;
wire     [2:0] u_f07;
wire     [2:0] u_f08;
wire     [2:0] u_f09;
wire     [2:0] u_f10;
wire     [2:0] u_f11;
wire     [1:0] u_f12;
wire     [1:0] u_f13;
wire     [1:0] u_f14;
wire           u_f15;
wire     [1:0] u_f16;
wire     [1:0] u_f17;
wire    [11:0] u_f18;
wire     [3:0] u_f19;
wire     [3:0] u_f20;
wire     [1:0] u_f21;
wire           u_f22;
wire     [1:0] u_f23;

wire  [(`ROM_BITS -1):0] rom_data; // physical    rom data_out


/*********** Ucode data path section *****************************************/

ucode_dat ucode_dat_0 (
                            .instr_index(index_byte1_e[7:0]),
                            .instr_narg (index_byte2_e[7:0]),
                            .instr_indexbyte1(index_byte1_e[7:0]),
                            .instr_indexbyte2(index_byte2_e[7:0]),
                            .ie_stall_ucode(ie_stall_ucode),
                            .ie_kill_ucode (ie_kill_ucode),
                            .u_f02(u_f02),
                            .u_f06(u_f06),
                            .u_f08(u_f08),
                            .u_f09(u_f09),
                            .u_f10(u_f10),
                            .u_f11(u_f11),
                            .u_f12(u_f12),
                            .u_f13(u_f13),
                            .u_f14(u_f14),
                            .u_f15(u_f15),
                            .u_f16(u_f16),
                            .u_f19(u_f19),
                            .u_f20(u_f20),
                            .iu_optop    (iu_optop[31:0]),
                            .alu_data    (alu_data[31:0]),
                            .archi_data  (archi_data[31:0]),
                            .ucode_addr_d(ucode_addr_d[31:0]),
                            .rs1  (rs1[31:0]),
                            .rs1_b(rs1_b[31:0]),
                            .rs2  (rs2[31:0]),
                            .dreg (dreg[31:0]),
                            .sm     (),
                            .sin    (),
                            .reset_l(reset_l),
                            .clk  (clk),
                            .so     (),
                            .u_addr_st_rd(u_addr_st_rd[31:0]),
                            .u_areg0     (u_areg0[31:0]),
                            .ucode_porta (ucode_porta[31:0]),
                            .ucode_portb (ucode_portb[31:0]),
                            .ucode_portc (ucode_portc[31:0]),
                            .ialu_a(ialu_a[31:0]),
                            .m_adder_porta(m_adder_porta[31:0]),
                            .m_adder_portb(m_adder_portb[31:0]),
                            .a_oprd(a_oprd[31:0]),
                            .a_oprd_0_l(a_oprd_0_l),
                            .b_oprd(b_oprd[31:0]),
                            .reg5_31(reg5_31)
                      );

ieu_rom ieu_rom_0 (
                            .nxt_ucode_cnt(nxt_ucode_cnt[8:0]),
                            .rom_data(rom_data) 
                  );

ucode_reg ucode_reg_0 (
                            .rom_fxx(rom_data[(`USED_BITS-1):0]),
                            .ie_stall_ucode (ie_stall_ucode),
                            .sel_fxx_default(sel_fxx_default),
                            .u_abt_cur      (u_abt_cur),
                            .sm (),
                            .sin(),
                            .clk(clk),
                            .so (),
                            .test_mode(te_ieu_rom),
                            .u_f00(u_f00),
                            .u_f01(u_f01),
                            .u_f02(u_f02),
                            .u_f03(u_f03),
                            .u_f04(u_f04),
                            .u_f05(u_f05),
                            .u_f06(u_f06),
                            .u_f07(u_f07),
                            .u_f08(u_f08),
                            .u_f09(u_f09),
                            .u_f10(u_f10),
                            .u_f11(u_f11),
                            .u_f12(u_f12),
                            .u_f13(u_f13),
                            .u_f14(u_f14),
                            .u_f15(u_f15),
                            .u_f16(u_f16),
                            .u_f17(u_f17),
                            .u_f18(u_f18),
                            .u_f19(u_f19),
                            .u_f20(u_f20),
                            .u_f21(u_f21),
                            .u_f22(u_f22),
                            .u_f23(u_f23)
                       );

endmodule


HierarchyFilesModulesSignalsTasksFunctionsHelp

This page: Created:Wed Mar 24 09:46:03 1999
From: /import/jet-pj2-sim/rahim/picoJava-II/design/iu/ucode/rtl/ucode_dpath.v

Verilog converted to html by v2html 5.0 (written by Costas Calamvokis).Help