集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 1285|回复: 2

请教一个乘法运算的问题(verilog)

[复制链接]
lanpad 发表于 2011-6-21 23:13:12 | 显示全部楼层 |阅读模式
本帖最后由 lanpad 于 2011-6-21 23:23 编辑

如图:

我是想写一个GPS捕获的匹配滤波器程序,定义了两个变量:
reg [1022:0] Code;           //Code是本地CA码,reg型
reg [3:0] Data [1022:0];   //Data是输入数据,4位,memory型

想做一个如下的相乘求和运算:
Code[0]*Data[0] + Code[1]*Data[1] + Code[2]*Data[1022] + …… +Code[0]*Data[1022]

需要把上式的运算写成一个函数MultiandSum(Code, Data)
但函数参数禁止使用memory型(Data是memory型的)

请问该如何解决?

另外,这种乘法运算是直接用“*”还是用IP核中的乘法器?想速度快,资源消耗不考虑。
a91234561962 发表于 2011-6-22 10:46:38 | 显示全部楼层
好像设计滤波器时和你这个思路有点像,你可以看下 滤波器设计思路
 楼主| lanpad 发表于 2011-6-22 16:38:58 | 显示全部楼层
好像设计滤波器时和你这个思路有点像,你可以看下 滤波器设计思路
a91234561962 发表于 2011-6-22 10:46



   看过几个滤波器的例子
一般的阶数很少,人家都是一个个写的
我这个得1023
还用到memory型的二维数组
verilog不能用for循环嵌套
麻烦
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

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

QQ|小黑屋|手机版|Archiver|集成电路技术分享 ( 京ICP备20003123号-1 )

GMT+8, 2024-5-19 10:37 , Processed in 0.108823 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表