QR(正交三角)分解法是求一般矩阵全部特征值的最有效并广泛应用的方法,一般矩阵先经过正交相似变化成为Hessenberg矩阵,然后再应用QR方法求特征值和特征向量。
使用verilog对QR实现方法进行设计并进行功能仿真:
如下:
顶层模块代码:
module TOP(
H1R,
H1I,
H2R,
H2I,
H3R,
H3I,
H4R,
H4I,
clk,
rst_n,
Y1R,
Y1I,
Y2R,
Y2I,
X1R,
X1I,
X2R,
X2I
);
parameter width = 16;
// Inputs
input signed [width-1:0] H1I,H2R,H2I,H3R,H3I,H1R,H4R,H4I,Y1R,Y1I,Y2R,Y2I;
input clk,rst_n;
// Outputs
output signed [width-1:0] X1R,X1I,X2R,X2I;
// Regs
reg signed [width-1:0]H[3:0][1:0];
wire signed [width-1:0]H_tmp[3:0][1:0];
reg signed [width-1:0]Y[0:3];
wire signed [width-1:0]Y_tmp[0:3];
reg [2:0] curr_state;
reg [2:0] next_state;
reg [2:0] i,j;
// wires
wire signed [width-1:0] V1URout,R1URout,R1UIout,R1UYRout,R1UYIout,V1DRout,R1DRout,