找回密码
 注册
关于网站域名变更的通知
查看: 207|回复: 2
打印 上一主题 下一主题

如何用乘加器(mac)实现150个数平方和?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-5-22 19:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
这个模块是music算法中的协方差矩阵中的一部分。输入的150个数是16位的,得到的结果是32位。; ^) e0 D+ j  y
自己也写了代码可是结果多加了一次第一个数的平方。顶层模块代码如下
  • module rom_mac(
  •         clk,
  •         nrst,
  •         result
  • );
  • input wire        clk;
  • input wire        nrst;
  • output wire        [31:0] result;
  • wire        [8:0] SYNTHESIZED_WIRE_0;
  • wire        [15:0] SYNTHESIZED_WIRE_3;
  • wire clk_25;
  • rom_x1        rom_x1_1(
  •         .clock(clk_25),
  •         .address(SYNTHESIZED_WIRE_0),
  •         .q(SYNTHESIZED_WIRE_3));
  • mac        mac_r11(
  •         .clock0(clk),
  •         .clock1(clk_25),
  •         .dataa(SYNTHESIZED_WIRE_3),
  •         .datab(SYNTHESIZED_WIRE_3),
  •         .result(result),
  •         .aclr0(~nrst)
  •         );
  • cnt        cnt_add(
  •         .clk(clk_25),
  •         .nrst(nrst),
  •         .q(SYNTHESIZED_WIRE_0));
  • pll pll_25(
  •         .inclk0(clk),
  •         .c0(clk_25)
  •         );
  • endmodule
  • 3 f) R# v) m* i1 i9 o  R

' Y7 ?8 I7 b. T5 v- E4 j8 a" v% C8 h[color=rgb(51, 102, 153) !important]复制代码

$ {4 ]- N' e! J6 W1 L调用了quartus的ip核ALTMULT_ACCUM、rom:1-port和pll。; b" W8 Q5 {- }9 f9 A! g% v. C5 D: h

该用户从未签到

2#
发表于 2020-5-22 19:51 | 只看该作者
看仿真波形,rom地址为0的值440读取了两个时钟周期,由于mac与rom的读取处于同步状态,那么地址0的值就行进行了两次操作。- c( `$ Y, Z: |; t. o( U% @0 [* h
//------
% T  r& O& X% g* A, s我安装的QuartusII不知道为什么没有这个rom的IP,没法搭工程。; ?- W; M+ C! V6 o
理论上讲这个IP应该还有一个使能信号才对。要不然rom一直处在读数的状态。
) X* a  g# \6 q$ d! r- M6 ?, x+ C//------
: x0 v. w" M' d+ K假如rom无使能端口,那么改变mac的复位信号aclr,使它延后一个时钟周期,这样就跳过了初始时刻rom的第一个值。
; ~" A' j" h' ]例:
9 l8 |; t& w: U. v; balways@(posedge clk_25 or negedge nrst)' o4 I; Q. J5 X$ Y( m7 I# z! d7 V
begin
: B+ w( _* j" b4 a$ j+ i% L, I* ~   if(!nrst) aclr0<= 1;//aclr0<= ~nrst;6 l& A9 \; t, L* t# Q
   else      aclr0<= 0;//aclr0<= ~nrst;
3 {  ~- \; t# `0 Z1 }; jend. I# r. a" I  J& Q
//------  S- |# \1 p3 J
归根结底,程序没有大问题。
! p! p0 @4 H  b1 @8 K" _  X主要是top层对某些关键信号的控制不太严谨。

点评

谢谢,找到了rom 的使能信号达到了目的。  详情 回复 发表于 2020-5-22 19:52

该用户从未签到

3#
 楼主| 发表于 2020-5-22 19:52 | 只看该作者
dsdsd2222 发表于 2020-5-22 19:51! q) O8 x2 c: J1 J. _
看仿真波形,rom地址为0的值440读取了两个时钟周期,由于mac与rom的读取处于同步状态,那么地址0的值就行进 ...
1 O. F; f$ K0 b
谢谢,找到了rom 的使能信号达到了目的。* n" D( j& N+ X* u
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-21 05:35 , Processed in 0.140625 second(s), 27 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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