由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
EE版 - 硬件sorting的实现
相关主题
请教一个关于verilog delay的问题请教大侠一个前途选择问题
请教一个选课的问题,关于systemc请问 学微电子,电路设计的话,要用到统计,随机信号方面的知识吗?
数字VLSI工作请教请教一个基本的复位电路的问题
phd还是工作?通信领域的ICC和GLOBECOMM VS. 电路领域的ISSCC
请教一个verilog code拿到了一个电路设计方向的Ph.D offer,但不知道值得去吗
请教VHDL和Verilog的在各行各业的比较不想再继续做工程师下去了?
请问Verilog零基础学起来要多久?请问下模拟电路,比如说cmos电路,rfic方向是不是特别难入门
外行请教:概率论与随机过程 重要吗?PhD选方向求教
相关话题的讨论汇总
话题: 实现话题: quicksort话题: 硬件话题: 寻址话题: 电路
进入EE版参与讨论
1 (共1页)
t********t
发帖数: 5415
1
之前去一个公司面试被design manager一个问题恶心坏了...
一块内存,1-port,1k*n bit(大小无所谓),都是整数,设计电路对这些数排序(方
法不限)。
之前从没想到过会有这样的问题...一下把我问晕了。版上的估计很多人让用C写个
quicksort眼睛都
不眨一下就能写出来,但是用verilog写呢?
我当时只想到了bubble sort...才疏学浅啊,当时quicksort原理搞得还不是太懂。画
白板的时候
预计4个n-bit flop加一点counter就能解决。
高手们有什么好的实现方法?google了一下相关文章似乎没看到太好的解决方案...
a*****s
发帖数: 6260
2
多少位的整数啊

【在 t********t 的大作中提到】
: 之前去一个公司面试被design manager一个问题恶心坏了...
: 一块内存,1-port,1k*n bit(大小无所谓),都是整数,设计电路对这些数排序(方
: 法不限)。
: 之前从没想到过会有这样的问题...一下把我问晕了。版上的估计很多人让用C写个
: quicksort眼睛都
: 不眨一下就能写出来,但是用verilog写呢?
: 我当时只想到了bubble sort...才疏学浅啊,当时quicksort原理搞得还不是太懂。画
: 白板的时候
: 预计4个n-bit flop加一点counter就能解决。
: 高手们有什么好的实现方法?google了一下相关文章似乎没看到太好的解决方案...

t********t
发帖数: 5415
3
这个不是主要问题吧...say 16bit
a*****s
发帖数: 6260
4
要我就直接硬件寻址了,取出一个整数,将这个数的值作为地址再
存回去。一共1M空间,也就是2的20次方,你的数才16位,直接寻址
也够用了。
具体实现么,设计一个状态机,从指针处取个数出来,该数的值作
为内存地址的头16位MSB。剩下的地址先填零,看该处的数是否与你
手头的数一样,一样的话LSB地址增加,直到找到一个不一样的为止。
俩字兑换位置。如果换过来的是零,指针加加,继续。非零的话,先
处理换存里这个数。

【在 t********t 的大作中提到】
: 这个不是主要问题吧...say 16bit
t********t
发帖数: 5415
5
一共就1K(不是1M)空间,10位地址线,所以直接寻址不行。
而且像你这么说的直接寻址可能会导致data corruption吧?例如:a[0]=8,那直接把8写
到a[8]去
原来的a[8]怎么办?如果数字不唯一的话更麻烦,剩下4位LSB也就是最多16个相同的数
字,如果相同
的数字超过16个咋办?

【在 a*****s 的大作中提到】
: 要我就直接硬件寻址了,取出一个整数,将这个数的值作为地址再
: 存回去。一共1M空间,也就是2的20次方,你的数才16位,直接寻址
: 也够用了。
: 具体实现么,设计一个状态机,从指针处取个数出来,该数的值作
: 为内存地址的头16位MSB。剩下的地址先填零,看该处的数是否与你
: 手头的数一样,一样的话LSB地址增加,直到找到一个不一样的为止。
: 俩字兑换位置。如果换过来的是零,指针加加,继续。非零的话,先
: 处理换存里这个数。

a*****s
发帖数: 6260
6
就1K空间?那直接上泡沫法得了。还是个状态机么,C写出来就跟硬件实现
差得不远了。
我的意思是暂存的内容跟a[8]交换,之后发现暂存非零的话就再处理它,是
零的话就去处理指针。怕相同数字超过的话,就把后4位LSB指向的地址做计数
器么,也没损失信息。

【在 t********t 的大作中提到】
: 一共就1K(不是1M)空间,10位地址线,所以直接寻址不行。
: 而且像你这么说的直接寻址可能会导致data corruption吧?例如:a[0]=8,那直接把8写
: 到a[8]去
: 原来的a[8]怎么办?如果数字不唯一的话更麻烦,剩下4位LSB也就是最多16个相同的数
: 字,如果相同
: 的数字超过16个咋办?

g****t
发帖数: 31659
7
2个数比较大小,然后大的换到前头,这个用点数字电路实现很容易吧。
每次比较两个数,换位,冒泡法。
你是这么做的吧? 这个我觉得挺好的。
quciksort不查书我也不会......

之前去一个公司面试被design manager一个问题恶心坏了...
一块内存,1-port,1k*n bit(大小无所谓),都是整数,设计电路对这些数排序(方
法不限)。
之前从没想到过会有这样的问题...一下把我问晕了。版上的估计很多人让用C写个
quicksort眼睛都
不眨一下就能写出来,但是用verilog写呢?
我当时只想到了bubble sort...才疏学浅啊,当时quicksort原理搞得还不是太懂。画
白板的时候
预计4个n-bit flop加一点counter就能解决。
高手们有什么好的实现方法?google了一下相关文章似乎没看到太好的解决方案...

【在 t********t 的大作中提到】
: 之前去一个公司面试被design manager一个问题恶心坏了...
: 一块内存,1-port,1k*n bit(大小无所谓),都是整数,设计电路对这些数排序(方
: 法不限)。
: 之前从没想到过会有这样的问题...一下把我问晕了。版上的估计很多人让用C写个
: quicksort眼睛都
: 不眨一下就能写出来,但是用verilog写呢?
: 我当时只想到了bubble sort...才疏学浅啊,当时quicksort原理搞得还不是太懂。画
: 白板的时候
: 预计4个n-bit flop加一点counter就能解决。
: 高手们有什么好的实现方法?google了一下相关文章似乎没看到太好的解决方案...

h***s
发帖数: 226
8
1.原理:与软件排序大同小异,只不过要把软件算法中的比较大小改为硬件电路、软件
的数据结构直接改为内存而已;并且还要设计有读写内存的电路功能。
2.具体实现,
一、假设该存储器有若干空余的存储单元,否则的话外接内存。这空闲的存储单元做为
缓存,用于排序算法中做中间存储;
二、外接电路用于内存寻址,不管地址线是8还是16的倍数还是10,都是有简单办法寻址
,在此略过;
三、采用任何一种sort算法,比如最简单的冒泡法、还是对折法,(如果当时忘记具体
算法,也可以采用挨个比较方式)根据寻址读取某两个地址数据进行比较,设计比较器
比较结果即可,中间结果存放空闲内存。视算法情况,可能需要将比较后的两地址中的
结果进行更新。
四、设计硬件电路时还要确保对地址内容循环读写。
c*******h
发帖数: 4883
9
如果不管规模大小,也可以用merging network,体现一下硬件的速度优势,呵呵。

【在 t********t 的大作中提到】
: 之前去一个公司面试被design manager一个问题恶心坏了...
: 一块内存,1-port,1k*n bit(大小无所谓),都是整数,设计电路对这些数排序(方
: 法不限)。
: 之前从没想到过会有这样的问题...一下把我问晕了。版上的估计很多人让用C写个
: quicksort眼睛都
: 不眨一下就能写出来,但是用verilog写呢?
: 我当时只想到了bubble sort...才疏学浅啊,当时quicksort原理搞得还不是太懂。画
: 白板的时候
: 预计4个n-bit flop加一点counter就能解决。
: 高手们有什么好的实现方法?google了一下相关文章似乎没看到太好的解决方案...

1 (共1页)
进入EE版参与讨论
相关主题
PhD选方向求教请教一个verilog code
sorting问题求教。 (转载)请教VHDL和Verilog的在各行各业的比较
32位微处理器如何配置16位的RAM和Flash请问Verilog零基础学起来要多久?
tianjeale,问题来了外行请教:概率论与随机过程 重要吗?
请教一个关于verilog delay的问题请教大侠一个前途选择问题
请教一个选课的问题,关于systemc请问 学微电子,电路设计的话,要用到统计,随机信号方面的知识吗?
数字VLSI工作请教请教一个基本的复位电路的问题
phd还是工作?通信领域的ICC和GLOBECOMM VS. 电路领域的ISSCC
相关话题的讨论汇总
话题: 实现话题: quicksort话题: 硬件话题: 寻址话题: 电路