verilog编程问题

来源:百度知道 编辑:UC知道 时间:2024/06/18 09:38:22
想用verilog实现一个算法:先把512个数据的平均值求出,然后把512个值都减去这一平均值,然后把得到的512个数据分成N段,再求出每一段的平均值。
不知道如何用verilog实现这一算法,哪位大侠指点一下,只要告诉我如何组织程序的结构就好了,不需要全部的代码。谢谢了!
512个数都是16位的,存在一个数组里面,处理之后的数据也要存在一个数组里面。
能不能详细得讲一下,或者有个类似的程序参考一下也行,谢谢各位了。
问题得到解决我会再追加100分的

1.512个数是2的9次方,即2^9 先确定输入为9位宽的二进制数(输入只定义一个变量就可以,不知道你用没用过verilog,verilog不需要你把所有输入都一一列举出来,只要一个输入变量,给它定义位宽就OK 如(8:0)a )

2.编写译码编码器,将其由二进制输入转为相对应的十进制输出(输出类似输入,只定义为一个变量,只需定义一下位宽即可)

3.又十进制的和除以512即的平均数

4.数据分段可由计数器形式编写,即计满清零,从新计数,记得加进位输出.由进位输出做分段的段落标号

5.求每段平均值方法同3

其实并不难,只是有点"繁",要编这样的程序,首先你要会用verilog里的元件例化.
OK~慢慢写代码吧~郁闷了就喝杯茶 呵呵

我先说串行的情况,如果计算单元多的话 可以并行
1. 把512个数据一个一个地读出 ,一个一个读出的时候 一个一个加起来
2. 因为是512是2的倍数 不需要用除法器 只需要用移位寄存器 实现就可以
3. 把512分成N段 最好是2的倍数 就可以用移位寄存器 实现了

Verilog就是一门语言.写好程序,编译,仿真,综合....

编程可用UltraEdit
编译仿真可用Modelsim
综合就多了.如Syplify ISE Quartus等