在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: oscillator_cn1

[求助] HELP!求最大最小值

[复制链接]
 楼主| 发表于 2011-1-24 10:18:09 | 显示全部楼层




闲话少说,给出代码吧。我比较愚钝,您指出问题之后不知道如何避免及改进。不知道您有没有办法避免?
注:模块的接口是指定好的,不能改变。
发表于 2011-1-24 13:45:59 | 显示全部楼层
对无符号数(有符号数转化成2补)可以直接比较的 a>b
发表于 2011-1-24 17:11:28 | 显示全部楼层
ls说到点子上了。不用按位比较,直接“大于”“小于”这么判断就好了,综合器帮你转化成门级操作
发表于 2011-1-25 09:19:42 | 显示全部楼层
回复 11# oscillator_cn1


    抱歉,年关了,我自己都忙得晕头转向的。没时间帮你写。
发表于 2011-1-25 09:31:15 | 显示全部楼层
楼主的代码能综合不,频率跑多少?
有个兄弟说的3级比较靠谱
发表于 2011-1-25 19:10:43 | 显示全部楼层
不能综合的。通常在可综合verilog里很少用到for这类的语法。当然也可以用,但是有诸多限制。楼猪的写法肯定无法综合
发表于 2011-1-28 09:35:21 | 显示全部楼层
回复 1# oscillator_cn1


    从你定义的数据个数的参数宽度来看,最大个数为7;则定义out_1~out_6;
     a1和a2比较,比较结果存入out_1(当需要最大值时,out_1等于a1和a2中的大值,需要最小值时,out_1等于a1和a2中的小值);
     out_1和a3比较,结果存入out_2;
     out_2和a4比较,结果存入out_3;
     out_3和a5比较,结果存入out_4;
     out_4和a6比较,结果存入out_5;
     out_5和a7比较,结果存入out_6;
    由实际数据个数i决定最后输出结果:out_(i-1)。
    1:因为从i+1到7的数据是假的,所以out_i~out_6;但因为选择的是out_(i-1),不受后续虚假比较影响。能够输出正确结果。
    2:硬件消耗:硬件消耗取决于数据的最大个数;当最大个数为7时,需要6个比较器。
    还是建议你做个比较器模块,然后调用6次就行。
    想要课综合,避免循环语句,除非循环次数固定。
发表于 2011-1-28 09:44:39 | 显示全部楼层
比较器的实现很简单:
首先判定是由符号数比较还是无符号数比较;
无符号数直接作为比较器输入;
有符号数将最高位取反再作为比较器输入;(最高位取反可以理解为加上一个无符号数的8,将有符号数-8~7平移成0~15)。比如0111经操作后变成1111;1000经操作后变成0000;
只需要一个比较器。
发表于 2011-1-28 10:35:08 | 显示全部楼层
上面有一层楼给出了一个图。
已经给出了结构了,那个结构可以把问题解决在log复杂度内。
用comp比较的结果来控制mux输出当前max/min的index和值。

这个二叉树型结构的建立可以通过parameter来控制。

代码写出来应该很清楚,很漂亮。

楼主加油
发表于 2011-1-28 10:39:03 | 显示全部楼层
您这个代码是软件思维下写的。
综合工具应该还没您这么聪明。。。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-23 07:50 , Processed in 0.020345 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表