这个模块是music算法中的协方差矩阵中的一部分。 输入的150个数是16位的,得到的结果是32位。 自己也写了代码可是结果多加了一次第一个数的平方。 顶层模块代码如下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 看仿真波形,rom地址为0的值440读取了两个时钟周期,由于mac与rom的读取处于同步状态,那么地址0的值就行进行了两次操作。 //------我安装的QuartusII不知道为什么没有这个rom的IP,没法搭工程。 理论上讲这个IP应该还有一个使能信号才对。 要不然rom一直处在读数的状态。 //------假如rom无使能端口,那么改变mac的复位信号aclr,使它延后一个时钟周期,这样就跳过了初始时刻rom的第一个值。 例:always@(posedge clk_25 or negedge nrst)begin if(!nrst) aclr0<= 1;//aclr0<= ~nrst; else aclr0<= 0;//aclr0<= ~nrst;end//------归根结底,程序没有大问题。 主要是top层对某些关键信号的控制不太严谨。 最佳答案 上图中clken是控制rom使能信号。 我又用signal tap进行了验证。 clken为1的图当时没截图情况相反,rom正常输出。 可以验证clken控制rommodule 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;wire rom_en;assign rom_en = (nrst == 1'b1) ? 1'b1 : 1'b0; rom_x1 rom_x1_1( .clock(clk_25), .address(SYNTHESIZED_WIRE_0), .clken(rom_en), .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
如何用AD844运算放大器完成双二阶想元件AD844,完成一个双二阶滤波器的电路仿真,其电路原理图如下:但是我并不知道AD844的引脚接口——或者说应该怎样接AD844,以及电路,如上原理图皆只是给出了一个片段,所以自己尝 大二电子设计要做一个数字分频计,现 我和同学分工,我做计数和显示的部分。
数字频率计的要求是被测范围:100HZ~100KHZ。输入的信号为正弦信号或方波。用4位数码管显示所测频率。并用发光二极 如何用电阻测试仪测量电感的线圈与做成的成品测试时还要拆开线圈测试么?不可能用电阻仪测试的,你要测的参数有别的仪器测!不能用普通表测试,而需要用能输出高压的表测量,具体的要根据所要求绝缘电压的等级.是 ucc28950移相全桥仿真检测到没输出 开关管驱动波形 也不正常 不知问题出在哪里 有做过的大神 帮帮忙 报酬细谈 qq569162058
为什么要仿真?直接做不就可以了,这颗芯片还是蛮不错的,原理图
|