接收一个0到100的数据,verilog如何实现按数据段分支?
接收一个0到100的数据,verilog如何实现按数据段分支?比如 接收数据为x,当x在0到50之间 进行方法1处理;
当x在50到80之间 进行方法2处理;
当x在80到100之间 进行方法3处理;
如何实现比较好 ? 一个case不就搞定了 稍微写一下,看下面的是否合格:
always@(posedge i_clk or negedge i_rst_n)
begin
if(~i_rst_n)
out<=3'b000;
else if(x<50)
out<=3'b001;
else if(x<80)
out<=3'b010;
else if(x<100)
out<=3'b011;
else
out<=out;
end
考虑3L的方法,但是尽量用最少的比特判断,否则性能大打折扣。 蓝色风暴@FPGA 发表于 2013-3-18 17:16 static/image/common/back.gif
一个case不就搞定了
case能搞定吗,看到被case的数据 都是一个值,而不是一个区间? german010 发表于 2013-3-19 12:55:08 static/image/common/back.gif
case能搞定吗,看到被case的数据 都是一个值,而不是一个区间?
用casex呗,只不过分段的范围被限制了。
页:
[1]