用verilog实现一个8位的数怎么检测第一个1出现的位置
展开全部
module(input [7:0] data_in,
output [2:0] pos)
wire [3:0] sel1;
wire [1:0] sel2;
assign {sel1,pos[2]} = (data_in[7:4] == 0) ? {data_in[3:0],1'b0}:{data_in[7:4],1'b1};
assign {sel2,pos[1]} = (sel1[3:2] == 0) ? {sel1[1:0],1'b0} :{sel1[3:2],1'b1};
assign pos[0] = (sel2[1] == 0) ? 1'b0 :1'b1;
endmodule
基本思路和软件里面的二分查找法类似
output [2:0] pos)
wire [3:0] sel1;
wire [1:0] sel2;
assign {sel1,pos[2]} = (data_in[7:4] == 0) ? {data_in[3:0],1'b0}:{data_in[7:4],1'b1};
assign {sel2,pos[1]} = (sel1[3:2] == 0) ? {sel1[1:0],1'b0} :{sel1[3:2],1'b1};
assign pos[0] = (sel2[1] == 0) ? 1'b0 :1'b1;
endmodule
基本思路和软件里面的二分查找法类似
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是十进制的8位数,还是 8bits 的 2进制数?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询