lattice_unit.v

来自「本文讨论了AR模型及线性预测的原理」· Verilog 代码 · 共 49 行

V
49
字号
module Lattice_unit
	(
		clk,
		p1,p0,
		q1,q0
	);
	
	parameter k = 1;
	
    input clk;
	input	p1,q0;
	output	p0,q1;
	
	wire clk;
	wire [31:0] p1,q0;
	wire [31:0] p0,q1;
	
	integer p0_o,q1_o;
	
	integer q0_reg;//q0延迟寄存器
	integer mul_reg;//乘法寄存器
	
	integer i;
	
always @(posedge clk)
begin	

    mul_reg=(q0_reg*k)>>6;//系数k是右移6位后输入的,所以输出要左移6位
    for(i=31;i>=26;i=i-1)
       mul_reg[i]=mul_reg[25];//符号位拓展

    p0_o=p1 + mul_reg;	
	

    mul_reg=(p0*k)>>6;//系数k是右移6位后输入的,所以输出要左移6位
    for(i=31;i>=26;i=i-1)
       mul_reg[i]=mul_reg[25];//符号位拓展

    q1_o=q0_reg - mul_reg;

    q0_reg=q0;
end

assign p0=p0_o;
assign q1=q1_o;
	

endmodule

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?