📄 degree_calc.v
字号:
end else if ( Q12 != 8'h0 ) begin degQx = 5'hc; bi_temp = Q12; end else if ( Q11 != 8'h0 ) begin degQx = 5'hb; bi_temp = Q11; end else if ( Q10 != 8'h0 ) begin degQx = 5'ha; bi_temp = Q10; end else if ( Q9 != 8'h0 ) begin degQx = 5'h9; bi_temp = Q9 ; end else if ( Q8 != 8'h0 ) begin degQx = 5'h8; bi_temp = Q8 ; end else if ( Q7 != 8'h0 ) begin degQx = 5'h7; bi_temp = Q7 ; end else if ( Q6 != 8'h0 ) begin degQx = 5'h6; bi_temp = Q6 ; end else if ( Q5 != 8'h0 ) begin degQx = 5'h5; bi_temp = Q5 ; end else if ( Q4 != 8'h0 ) begin degQx = 5'h4; bi_temp = Q4 ; end else if ( Q3 != 8'h0 ) begin degQx = 5'h3; bi_temp = Q3 ; end else if ( Q2 != 8'h0 ) begin degQx = 5'h2; bi_temp = Q2 ; end else if ( Q1 != 8'h0 ) begin degQx = 5'h1; bi_temp = Q1 ; end else begin degQx = 5'h0; bi_temp = Q0 ; end end always@( L0 or L1 or L2 or L3 or L4 or L5 or L6 or L7 or L8 or L9 or L10 or L11 or L12 or L13 or L14 or L15 or L16) begin if ( L16 != 8'h0 ) degLx = 5'h10; else if ( L15 != 8'h0 ) degLx = 5'hf; else if ( L14 != 8'h0 ) degLx = 5'he; else if ( L13 != 8'h0 ) degLx = 5'hd; else if ( L12 != 8'h0 ) degLx = 5'hc; else if ( L11 != 8'h0 ) degLx = 5'hb; else if ( L10 != 8'h0 ) degLx = 5'ha; else if ( L9 != 8'h0 ) degLx = 5'h9; else if ( L8 != 8'h0 ) degLx = 5'h8; else if ( L7 != 8'h0 ) degLx = 5'h7; else if ( L6 != 8'h0 ) degLx = 5'h6; else if ( L5 != 8'h0 ) degLx = 5'h5; else if ( L4 != 8'h0 ) degLx = 5'h4; else if ( L3 != 8'h0 ) degLx = 5'h3; else if ( L2 != 8'h0 ) degLx = 5'h2; else if ( L1 != 8'h0 ) degLx = 5'h1; else degLx = 5'h0; end always@( posedge clk or negedge n_rst ) begin if ( n_rst == 1'b0 ) begin ai <= 8'h0; bi <= 8'h0; end else if ( start_calc == 1'b1 && clken == 1'b1 && phase1 == 1'b1 ) begin ai <= ai_temp; bi <= bi_temp; end else if ( clken == 1'b1 && phase1 == 1'b1 ) begin ai <= ai; bi <= bi; end else; endalways@( posedge clk or negedge n_rst ) begin if ( n_rst == 1'b0 ) swap <= 1'b0; else if ( degRx >= degQx && start_calc == 1'b1 && clken == 1'b1 && phase1 == 1'b1 ) swap <= 1'b0; else if ( degRx < degQx && start_calc == 1'b1 && clken == 1'b1 && phase1 == 1'b1 ) swap <= 1'b1; else if ( clken == 1'b1 && phase1 == 1'b1 ) swap <= 1'b0; else; endalways@( posedge clk or negedge n_rst ) begin if ( n_rst == 1'b0 ) stop <= 1'b0; else if ( degRx < degLx && start_calc == 1'b1 && clken == 1'b1 && phase1 == 1'b1 ) stop <= 1'b1; else if ( clken == 1'b1 && phase1 == 1'b1 ) stop <= 1'b0; else; end wire [4:0] differance_RQ; wire [4:0] differance_QR; assign differance_RQ = degRx - degQx ; assign differance_QR = degQx - degRx ; always@( posedge clk or negedge n_rst ) begin if ( n_rst == 1'b0 ) li <= 5'h0; else if( degRx >= degQx && start_calc == 1'b1 && clken == 1'b1 && phase1 == 1'b1 ) li <= differance_RQ; else if( degQx > degRx && start_calc == 1'b1 && clken == 1'b1 && phase1 == 1'b1 ) li <= differance_QR; else if( clken == 1'b1 ) li <= li; else; endendmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -