Ignore:
Timestamp:
Apr 30, 2009, 3:51:41 PM (15 years ago)
Author:
moulu
Message:

1) added a generic multiplier (systemC isn't working with 8bits)
2) added a partial functionnal unit vhdl.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Comparator/src/Comparator_vhdl_xilinx_body.cpp

    r113 r116  
    2020  {
    2121    log_begin(Comparator,FUNCTION);
    22     vhdl->set_body ("");
     22    vhdl->set_body (0,"ins_c_compare_v9_0 : c_compare_v9_0");
     23    vhdl->set_body (1,"generic map (");
     24    vhdl->set_body (2,"c_width      => "+toString(_param->_size_data)+",");
     25    vhdl->set_body (2,"c_data_type  => "+toString(!_param->_is_signed)+",  -- 0 = signed, 1 = unsigned");
     26    std::string print_res_pin = "";
     27    switch (_param->_type)
     28      {
     29      case COMPARATOR_EQUAL :
     30        vhdl->set_body (2,"c_has_a_eq_b => 1)");
     31        print_res_pin = "a_eq_b";
     32        break;
     33      case COMPARATOR_NOT_EQUAL :
     34        vhdl->set_body (2,"c_has_a_eq_b => 0,");
     35        vhdl->set_body (2,"c_has_a_ne_b => 1)");
     36        print_res_pin = "a_ne_b";
     37        break;
     38      case COMPARATOR_GREATER :
     39        vhdl->set_body (2,"c_has_a_eq_b => 0,");
     40        vhdl->set_body (2,"c_has_a_gt_b => 1)");
     41        print_res_pin = "a_gt_b";
     42        break;
     43      case COMPARATOR_GREATER_OR_EQUAL :
     44        vhdl->set_body (2,"c_has_a_eq_b => 0,");
     45        vhdl->set_body (2,"c_has_a_ge_b => 1)");
     46        print_res_pin = "a_ge_b";
     47        break;
     48      case COMPARATOR_LESS :
     49        vhdl->set_body (2,"c_has_a_eq_b => 0,");
     50        vhdl->set_body (2,"c_has_a_lt_b => 1)");
     51        print_res_pin = "a_lt_b";
     52        break;
     53      case COMPARATOR_LESS_OR_EQUAL :
     54        vhdl->set_body (2,"c_has_a_eq_b => 0,");
     55        vhdl->set_body (2,"c_has_a_le_b => 1)");
     56        print_res_pin = "a_le_b";
     57        break;
     58      }
     59   
     60    vhdl->set_body (1,"port map (");
     61    vhdl->set_body (2,"a => in_COMPARE_DATA_0,");
     62    vhdl->set_body (2,"b => in_COMPARE_DATA_1,");
     63    vhdl->set_body (2,print_res_pin+" => out_COMPARE_TEST);");
     64   
    2365    log_end(Comparator,FUNCTION);
    2466  };
Note: See TracChangeset for help on using the changeset viewer.