MyFPGA Forum

标题: 在寄存器的读取中怎样更改顺序? [打印本页]

作者: andylei    时间: 2010-3-12 14:41
标题: 在寄存器的读取中怎样更改顺序?
我要将一个864个32位的数按要求重排后输出,用什么方法可以方便的实现啊
作者: huguangheng    时间: 2010-3-13 20:04
回复 1# andylei


    我猜这个的关键在于你想按什么规律重排·····那样应该才是影响面积的主要因素吧
作者: Steady_Chou    时间: 2010-3-13 23:19
如何重排??  你需要有甚麼規則 ? 或是順序嗎??
作者: rich    时间: 2010-3-13 23:49
可用Bubble Sort & Quick Sort
作者: andylei    时间: 2010-3-14 15:41
回复 2# huguangheng


一个ABCDEFG顺序的数据串,每一个数据串都是包含若干个32位的数据,要按DABFG的要求输出。
作者: andylei    时间: 2010-3-15 14:14
用双口RAM做吧,读地址不好写啊。
作者: huguangheng    时间: 2010-3-15 14:31
回复 6# andylei


    DABFG....这是有意义的顺序么...还是指定的顺序?
这个好像仅仅延迟原始addr,再重排就可以...
dpram的话,为什么会觉得读很麻烦...
我还是不懂这是什么样的排序..其他人似乎也不知道....
作者: andylei    时间: 2010-3-15 20:48
就是没有特定的顺序啊,要求按这样的排序读出
作者: huguangheng    时间: 2010-3-15 22:05
回复 8# andylei


    我还是当DABFG考虑好了。。。
你在数据流输入时的存储过程中,有一个地址吧,那么你可以把地址的值锁存/寄存起来,然后以D为基准,即0延迟,其他的地址延迟特定的CLK周期,就可以。
假设 ABCDEFG是每个CLK来一个数据,这样存储到DPRAM,或者其他缓冲的特定位置。而你用经过延迟和重排的地址,直接从另一个端口读出数据,如果这个是流模式的话,并且都是每CLK周期一写一读,因为你只读出DABFG,而CE去掉了,所以需要在读出的结果处有一个使能,随读出的数据一同送往后端

比如ABCDEFG 到 DABFG,即为 DAB(C)(E)FG

那么
    A delay 3clk
    B delay 3clk
    C delay 3clk  not enable
    D delay 0clk       
    E delay 3clk  not enable
    F delay 3clk  
    G delay 3clk  

因为我还是不太清楚怎么回事。。可能说得你已经知道,或者不是你想要的
作者: andylei    时间: 2010-3-16 10:45
我试试吧,万分感谢啊!!!
作者: xlbian    时间: 2010-5-9 21:41
楼上的广告放错地方了!!!




欢迎光临 MyFPGA Forum (http://www.myfpga.org/discuz/) Powered by Discuz! X3