/* 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. */ /******************************************************** *TRAJA 2.0 Floating point first nonzero bit detector * *Ver1.00 * *********************************************************/ module bit_h{ input in<64> ; output out<6> ; instrin do ; instruct do any { in<61> : out = 0b000000 ; in<60> : out = 0b000001 ; in<59> : out = 0b000010 ; in<58> : out = 0b000011 ; in<57> : out = 0b000100 ; in<56> : out = 0b000101 ; in<55> : out = 0b000110 ; in<54> : out = 0b000111 ; in<53> : out = 0b001000 ; in<52> : out = 0b001001 ; in<51> : out = 0b001010 ; in<50> : out = 0b001011 ; in<49> : out = 0b001100 ; in<48> : out = 0b001101 ; in<47> : out = 0b001110 ; in<46> : out = 0b001111 ; in<45> : out = 0b010000 ; in<44> : out = 0b010001 ; in<43> : out = 0b010010 ; in<42> : out = 0b010011 ; in<41> : out = 0b010100 ; in<40> : out = 0b010101 ; in<39> : out = 0b010110 ; in<38> : out = 0b010111 ; in<37> : out = 0b011000 ; in<36> : out = 0b011001 ; in<35> : out = 0b011010 ; in<34> : out = 0b011011 ; in<33> : out = 0b011100 ; in<32> : out = 0b011101 ; in<31> : out = 0b011110 ; in<30> : out = 0b011111 ; in<29> : out = 0b100000 ; in<28> : out = 0b100001 ; in<27> : out = 0b100010 ; in<26> : out = 0b100011 ; in<25> : out = 0b100100 ; in<24> : out = 0b100101 ; in<23> : out = 0b100110 ; in<22> : out = 0b100111 ; in<21> : out = 0b101000 ; in<20> : out = 0b101001 ; in<19> : out = 0b101010 ; in<18> : out = 0b101011 ; in<17> : out = 0b101100 ; in<16> : out = 0b101101 ; in<15> : out = 0b101110 ; in<14> : out = 0b101111 ; in<13> : out = 0b110000 ; in<12> : out = 0b110001 ; in<11> : out = 0b110010 ; in<10> : out = 0b110011 ; in<9> : out = 0b110100 ; in<8> : out = 0b110101 ; in<7> : out = 0b110110 ; in<6> : out = 0b110111 ; in<5> : out = 0b111000 ; in<4> : out = 0b111001 ; in<3> : out = 0b111010 ; in<2> : out = 0b111011 ; in<1> : out = 0b111100 ; in<0> : out = 0b111101 ; } }