⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 boshuxc.v

📁 基于FPGA的波束成型
💻 V
字号:
`timescale 1ns / 1ps
////////////////////////////////////////////////////////////////////////////////
// Company: 
// Engineer:
//
// Create Date:    09:38:03 06/04/07
// Design Name:    
// Module Name:    boshuxc
// Project Name:   
// Target Device:  
// Tool versions:  
// Description:
//
// Dependencies:
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//本模块需要3个CLK.
// 
////////////////////////////////////////////////////////////////////////////////

module boshuxc(ar1,ar2,ar3,ar4,ar5,ar6,ar7,ar8,ai1,ai2,ai3,ai4,ai5,ai6,ai7,ai8,
				br1,br2,br3,br4,br5,br6,br7,br8,bi1,bi2,bi3,bi4,bi5,bi6,bi7,bi8,
				yr,yi,clk,start,rdy);
				
input[15:0] ar1,ar2,ar3,ar4,ar5,ar6,ar7,ar8,ai1,ai2,ai3,ai4,ai5,ai6,ai7,ai8;
input[15:0] br1,br2,br3,br4,br5,br6,br7,br8,bi1,bi2,bi3,bi4,bi5,bi6,bi7,bi8;	//权值
//input[7:0] w1,w2,w3,w4,w5,w6,w7,w8;
input clk,start;
output[31:0] yr,yi;
output rdy;

wire[31:0] war1,war2,war3,war4,war5,war6,war7,war8,wai1,wai2,wai3,wai4,wai5,wai6,wai7,wai8;
wire[31:0] wbr1,wbr2,wbr4,wbr3,wbi1,wbi2,wbi4,wbi3;
wire[31:0] wcr1,wcr2,wci1,wci2;	
wire rdy1,rdy2,rdy3,rdy4,rdy5,rdy6,rdy7,rdy8;
wire rdya;
reg[31:0] yr,yi;
reg rdy=0;	

complexmul mu1(ar1,-ai1,br1,bi1,war1,wai1,clk,start,rdy1);//复数乘法运算
complexmul mu2(ar2,-ai2,br2,bi2,war2,wai2,clk,start,rdy2);
complexmul mu3(ar3,-ai3,br3,bi3,war3,wai3,clk,start,rdy3);
complexmul mu4(ar4,-ai4,br4,bi4,war4,wai4,clk,start,rdy4);
complexmul mu5(ar5,-ai5,br5,bi5,war5,wai5,clk,start,rdy5);
complexmul mu6(ar6,-ai6,br6,bi6,war6,wai6,clk,start,rdy6);
complexmul mu7(ar7,-ai7,br7,bi7,war7,wai7,clk,start,rdy7);
complexmul mu8(ar8,-ai8,br8,bi8,war8,wai8,clk,start,rdy8);

assign rdya=rdy1&&rdy2&&rdy3&&rdy4&&rdy5&&rdy6&&rdy7&&rdy8;

//addm addmodule(war1,war2,war3,war4,war5,war6,war7,war8,wai1,wai2,wai3,wai4,wai5,wai6,wai7,wai8,
//				yr,yi,clk,rdya,rdy);
//实数运算
assign wbr1=war1+war2;
assign wbr2=war3+war4;
assign wbr3=war5+war6;
assign wbr4=war7+war8;

assign wcr1=wbr1+wbr2;
assign wcr2=wbr3+wbr4;



//虚数运算
assign wbi1=wai1+wai2;
assign wbi2=wai3+wai4;
assign wbi3=wai5+wai6;
assign wbi4=wai7+wai8;

assign wci1=wbi1+wbi2;
assign wci2=wbi3+wbi4;

always @ (posedge clk)
begin
	if(rdya)
		begin
			yr<=wcr1+wcr2;
			yi<=wci1+wci2;
			rdy<=1;
		end
	else
		begin
			yr<=32'b0;
			yi<=32'b0;
			rdy<=0;
		end
end

/*

//输出结果(实数部分)
assign yr=wcr1+wcr2;
//输出结果(虚数部分)
assign yi=wci1+wci2;		 */
								
endmodule

⌨️ 快捷键说明

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