如果A B是变量,数据就需要写入存储器而不是初始化进去,写入遵循存储器写入时序。
2 如何取出数据进行乘法运算并累加,看到常用的是脉动阵列,但是我不是很懂
提供矩阵元素的地址,从存储器中读出,脉动阵列就是流水线结构。
3.在软件编程中利用的是for循环,在用verilog实现时,是设置一个标志位来决定运算什么时候结束吗?
硬件设计的思维方式和软件设计的不同,软件中的for是循环利用循环体内的代码执行,硬件中的for要实实在在的硬件电路来实现的。
我的思维比较混乱,求大家给我指点指点~
思维的确混乱,概念不清楚,还是打好基础的好:)
input[63:0] A0, //A0表示A矩阵的第一行 其中A0[63:48] A0 [47:32] A0[31:16] A0 [15:0]分别表示第一行中的四个元素(每个元素16位表示),下同input[63:0] A1,
input[63:0] A2,
input[63:0] A3,
input[63:0] B0,
input[63:0] B1,
input[63:0] B2,
input[63:0] B3,
output[63:0] C0,
output[63:0] C1,
output[63:0] C2,
output[63:0] C3,
//假设要求C = AB
C0[63:48] = A0[63:48]*B0[63:48] + A0 [47:32]*B1[63:48] + A0[31:16]*B2[63:48] + A0 [15:0]*B3[63:48]//根据公式相应的求出 C0[47:32] C0[31:16] C0[15:0].........
//同理求 C1 C2 C3
//这个只是个人理解,仅供参考,有更好的方法我们共同交流学习。
如果要求矩阵的逆,首先你要判断该矩阵是否为退化矩阵
一般用伴随矩阵法和初等变换法
个人认为FPGA更适合用初等变换法求逆矩阵。
但是求逆矩阵会涉及到除法,FPGA定点运算,做除法会有精度丢失。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)