
dsd1-10 / dsd-07=Verilog / digital-desh+reg
.doc
module top(clk, in, inb, out);
input clk;
input [1:63] in , inb;
output [1:6] out ;
wire [1:63] in_sh = ~(in&inb);
reg [1:6] out_sh;
reg [1:6] out;
always@(in_sh)
case(in_sh)
63'b111111111111111111111111111111111111111111111111111111111111111 : out_sh = 0;
63'b111111111111111111111111111111111111111111111111111111111111110 : out_sh = 1;
63'b111111111111111111111111111111111111111111111111111111111111101 : out_sh = 2;
63'b111111111111111111111111111111111111111111111111111111111111011 : out_sh = 3;
63'b111111111111111111111111111111111111111111111111111111111110111 : out_sh = 4;
63'b111111111111111111111111111111111111111111111111111111111101111 : out_sh = 5;
63'b111111111111111111111111111111111111111111111111111111111011111 : out_sh = 6;
63'b111111111111111111111111111111111111111111111111111111110111111 : out_sh = 7;
63'b111111111111111111111111111111111111111111111111111111101111111 : out_sh = 8;
63'b111111111111111111111111111111111111111111111111111111011111111 : out_sh = 9;
63'b111111111111111111111111111111111111111111111111111110111111111 : out_sh = 10;
63'b111111111111111111111111111111111111111111111111111101111111111 : out_sh = 11;
63'b111111111111111111111111111111111111111111111111111011111111111 : out_sh = 12;
63'b111111111111111111111111111111111111111111111111110111111111111 : out_sh = 13;
63'b111111111111111111111111111111111111111111111111101111111111111 : out_sh = 14;
63'b111111111111111111111111111111111111111111111111011111111111111 : out_sh = 15;
63'b111111111111111111111111111111111111111111111110111111111111111 : out_sh = 16;
63'b111111111111111111111111111111111111111111111101111111111111111 : out_sh = 17;
63'b111111111111111111111111111111111111111111111011111111111111111 : out_sh = 18;
63'b111111111111111111111111111111111111111111110111111111111111111 : out_sh = 19;
63'b111111111111111111111111111111111111111111101111111111111111111 : out_sh = 20;
63'b111111111111111111111111111111111111111111011111111111111111111 : out_sh = 21;
63'b111111111111111111111111111111111111111110111111111111111111111 : out_sh = 22;
63'b111111111111111111111111111111111111111101111111111111111111111 : out_sh = 23;
63'b111111111111111111111111111111111111111011111111111111111111111 : out_sh = 24;
63'b111111111111111111111111111111111111110111111111111111111111111 : out_sh = 25;
63'b111111111111111111111111111111111111101111111111111111111111111 : out_sh = 26;
63'b111111111111111111111111111111111111011111111111111111111111111 : out_sh = 27;
63'b111111111111111111111111111111111110111111111111111111111111111 : out_sh = 28;
63'b111111111111111111111111111111111101111111111111111111111111111 : out_sh = 29;
63'b111111111111111111111111111111111011111111111111111111111111111 : out_sh = 30;
63'b111111111111111111111111111111110111111111111111111111111111111 : out_sh = 31;
63'b111111111111111111111111111111101111111111111111111111111111111 : out_sh = 32;
63'b111111111111111111111111111111011111111111111111111111111111111 : out_sh = 33;
63'b111111111111111111111111111110111111111111111111111111111111111 : out_sh = 34;
63'b111111111111111111111111111101111111111111111111111111111111111 : out_sh = 35;
63'b111111111111111111111111111011111111111111111111111111111111111 : out_sh = 36;
63'b111111111111111111111111110111111111111111111111111111111111111 : out_sh = 37;
63'b111111111111111111111111101111111111111111111111111111111111111 : out_sh = 38;
63'b111111111111111111111111011111111111111111111111111111111111111 : out_sh = 39;
63'b111111111111111111111110111111111111111111111111111111111111111 : out_sh = 40;
63'b111111111111111111111101111111111111111111111111111111111111111 : out_sh = 41;
63'b111111111111111111111011111111111111111111111111111111111111111 : out_sh = 42;
63'b111111111111111111110111111111111111111111111111111111111111111 : out_sh = 43;
63'b111111111111111111101111111111111111111111111111111111111111111 : out_sh = 44;
63'b111111111111111111011111111111111111111111111111111111111111111 : out_sh = 45;
63'b111111111111111110111111111111111111111111111111111111111111111 : out_sh = 46;
63'b111111111111111101111111111111111111111111111111111111111111111 : out_sh = 47;
63'b111111111111111011111111111111111111111111111111111111111111111 : out_sh = 48;
63'b111111111111110111111111111111111111111111111111111111111111111 : out_sh = 49;
63'b111111111111101111111111111111111111111111111111111111111111111 : out_sh = 50;
63'b111111111111011111111111111111111111111111111111111111111111111 : out_sh = 51;
63'b111111111110111111111111111111111111111111111111111111111111111 : out_sh = 52;
63'b111111111101111111111111111111111111111111111111111111111111111 : out_sh = 53;
63'b111111111011111111111111111111111111111111111111111111111111111 : out_sh = 54;
63'b111111110111111111111111111111111111111111111111111111111111111 : out_sh = 55;
63'b111111101111111111111111111111111111111111111111111111111111111 : out_sh = 56;
63'b111111011111111111111111111111111111111111111111111111111111111 : out_sh = 57;
63'b111110111111111111111111111111111111111111111111111111111111111 : out_sh = 58;
63'b111101111111111111111111111111111111111111111111111111111111111 : out_sh = 59;
63'b111011111111111111111111111111111111111111111111111111111111111 : out_sh = 60;
63'b110111111111111111111111111111111111111111111111111111111111111 : out_sh = 61;
63'b101111111111111111111111111111111111111111111111111111111111111 : out_sh = 62;
63'b011111111111111111111111111111111111111111111111111111111111111 : out_sh = 63;
default: out_sh = 0 ;
endcase
always@(negedge clk)
out=out_sh;
endmodule