/* This file is a part of TRAJA(Tokai Research Approarch for JavaVM Architecture) project. Copyright 1997, 1998 Shimizu-Lab., School of Engineering, Tokai University. 1117 Kitakaname, Hiratsuka, Kanagawa, 259-1292, Japan email: nshimizu@et.u-tokai.ac.jp URL: http://shimizu-lab.et.u-tokai.ac.jp/ Though these files are RTL hardware source code, the copying policy just follow the GPL 2.0(see COPYING file). If you have any comment or improvement for these files, feel free to contact to me. */ /************************************************ * TRAJA2.0 Floating Point Multiplier * * Ver1.00 * ************************************************/ %i "adder64.sfl" module booth { submod_type adder64 { input cin ; input in1<64> ; input in2<64> ; output out<64> ; instrin do ; } input in1<54> ; input in2<109> ; output out<109> ; instrin do ; adder64 ALU ; instr_arg ALU.do(cin,in1,in2) ; instruct do any { in2<1>@in2<0> : any { in2<0> : out = ALU.do(0b0,10#0b0||in2<108:55>,10#0b0|| in1).out<53:0>||in2<54:0> ; else : out = ALU.do(0b1,10#0b0||in2<108:55>,10#0b0||^in1).out<53:0>||in2<54:0> ; } else : out = in2 ; } }