很多比较器,请问有没有什么好的实现方式?
时间:10-02
整理:3721RD
点击:
reg [10:0] id;
reg [9:0] value;
always (id)
if (id < 11'd1)
value = 10'd0;
else if (id < 11'd2)
value = 10'd1;
else if (id < 11'd5)
value = 10'd4;
else if (id < 11'd10)
value = 10'd7;
else if (id < 11'd20)
value = 10'd13;
else if (id < 11'd30)
value = 10'd18;
......
......
else if (id < 11'd300)
value = 10'd200;
else if (id < 11'd310)
value = 10'd203;
......
......
else if (id < 11'900)
value = 10'd830;
中间省略了很多,比较的值没什么规律
请问有什么好的实现方式吗?
reg [9:0] value;
always (id)
if (id < 11'd1)
value = 10'd0;
else if (id < 11'd2)
value = 10'd1;
else if (id < 11'd5)
value = 10'd4;
else if (id < 11'd10)
value = 10'd7;
else if (id < 11'd20)
value = 10'd13;
else if (id < 11'd30)
value = 10'd18;
......
......
else if (id < 11'd300)
value = 10'd200;
else if (id < 11'd310)
value = 10'd203;
......
......
else if (id < 11'900)
value = 10'd830;
中间省略了很多,比较的值没什么规律
请问有什么好的实现方式吗?
重新设计ID的值,使ID可以简单映射到VALUE
就是因为id值没什么规律呀
这么多数值的选择,你还不如做个ROM的查找表呢,这个写法,你能跑多快的钟呀?
你最好试着找找规律,要不就用ROM吧
时钟要求还好15M就可以了。
用ROM更占资源啊
这么写组合逻辑的多大,你还是把它分成几段来写.
用ROM表吧。
用rom实现比较的好
最好是单个值的比较。找id信号的规律
如果没有规律,那么只能分段处理,确保share pipeline...
