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

📄 get_max6x1.v

📁 拿verilog编写的som(自适应神经网络算法)
💻 V
字号:
//////////////////////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////////////////////
`include "define.v"
module min6x1(
               //output
               index,
               D,
               //inputs
               D1,
               D2,
               D3,
               D4,
               D5,
               D6
              );
output  [2:0]  index;
output  [`BIT_WIDTH_DATA-1:0]  D;
input   [`BIT_WIDTH_DATA-1:0]  D1,
               D2,
               D3,
               D4,
               D5,
               D6;
wire    [`BIT_WIDTH_DATA-1:0]  D7,
               D8,
               D9,
               D10;
wire    [2:0]  index7,
               index8,
               index9,
               index10;
               
assign  index7=(D2>D1)? 3'b001:3'b010;
assign  index8=(D4>D3)? 3'b011:3'b100; 
assign  index9=(D6>D5)? 3'b101:3'b110;

assign  D7=(D2>D1)? D1:D2;
assign  D8=(D4>D3)? D3:D4; 
assign  D9=(D6>D5)? D5:D6;    

assign  D10=(D8>D7)? D7:D8;
assign  index10=(D8>D7)? index7:index8;

assign  index=(D10>D9)?index9:index10;
assign  D=(D10>D9)? D9:D10;

endmodule  
/////////////////////////////////////////////////
module min6x1_with_index(  //outputs
                           winner_x,
                           winner_y,
                           //inputs
                           D1,
                           D2,
                           D3,
                           D4,
                           D5,
                           D6,
                           index1,
                           index2,
                           index3,
                           index4,
                           index5,
                           index6
                         ); 
output    [2:0]  winner_x,
                 winner_y;
input     [`BIT_WIDTH_DATA-1:0]  D1,
                 D2,
                 D3,
                 D4,
                 D5,
                 D6; 
input     [2:0]  index1,
                 index2,
                 index3,
                 index4,
                 index5,
                 index6;                
wire      [`BIT_WIDTH_DATA-1:0]  D7,
                 D8,
                 D9,
                 D10;
wire      [5:0]  index7,
                 index8,
                 index9,
                 index10;
                 
assign  index7=(D2>D1)? {index1,3'b001}:{index2,3'b010};
assign  index8=(D4>D3)? {index3,3'b011}:{index4,3'b100}; 
assign  index9=(D6>D5)? {index5,3'b101}:{index6,3'b110};

assign  D7=(D2>D1)? D1:D2;
assign  D8=(D4>D3)? D3:D4; 
assign  D9=(D6>D5)? D5:D6;    
                 
assign  D10=(D8>D7)? D7:D8;
assign  index10=(D8>D7)? index7:index8;

assign  {winner_y,winner_x}=(D10>D9)?index9:index10;

endmodule   
/////////////////////////////////////////////////
module max6x1(
               //output
               D,
               D_x,
               D_y,
               //inputs
               D1,
               D1_x,
               D1_y,
               D2,
               D2_x,
               D2_y,
               D3,
               D3_x,
               D3_y,
               D4,
               D4_x,
               D4_y,
               D5,
               D5_x,
               D5_y,
               D6,
               D6_x,
               D6_y
              );
/////////////////////////////////////////////////
output  [`BIT_WIDTH_DATA-1:0]  D,D_x,D_y;
input   [`BIT_WIDTH_DATA-1:0]  D1,
               D2,
               D3,
               D4,
               D5,
               D6;
input   [`BIT_WIDTH_DATA-1:0]  D1_x,D2_x,D3_x,D4_x,D5_x,D6_x;
input   [`BIT_WIDTH_DATA-1:0]  D1_y,D2_y,D3_y,D4_y,D5_y,D6_y;
wire    [`BIT_WIDTH_DATA-1:0]  D7,D7_x,D7_y,
               D8,D8_x,D8_y,
               D9,D9_x,D9_y,
               D10,D10_x,D10_y;              
assign  D7=(D1>D2)? D1:D2;
assign  D8=(D3>D4)? D3:D4; 
assign  D9=(D5>D6)? D5:D6;    

assign  D7_x=(D1>D2)? D1_x:D2_x;
assign  D8_x=(D3>D4)? D3_x:D4_x; 
assign  D9_x=(D5>D6)? D5_x:D6_x;

assign  D7_y=(D1>D2)? D1_y:D2_y;
assign  D8_y=(D3>D4)? D3_y:D4_y; 
assign  D9_y=(D5>D6)? D5_y:D6_y;

assign  D10=(D7>D8)? D7:D8;


assign  D10_x=(D7>D8)? D7_x:D8_x;  
assign  D10_y=(D7>D8)? D7_y:D8_y;

assign  D=(D9>D10)? D9:D10;

assign  D_x=(D9>D10)? D9_x:D10_x;
assign  D_y=(D9>D10)? D9_y:D10_y;
endmodule  
/////////////////////////////////////////////////
module max6x1_without_index(
               //output
               D_x,
               D_y,
               //inputs
               D1,
               D1_x,
               D1_y,
               D2,
               D2_x,
               D2_y,
               D3,
               D3_x,
               D3_y,
               D4,
               D4_x,
               D4_y,
               D5,
               D5_x,
               D5_y,
               D6,
               D6_x,
               D6_y
              );
/////////////////////////////////////////////////
output  [`BIT_WIDTH_DATA-1:0]  D_x,D_y;
input   [`BIT_WIDTH_DATA-1:0]  D1,
               D2,
               D3,
               D4,
               D5,
               D6;
input   [`BIT_WIDTH_DATA-1:0]  D1_x,D2_x,D3_x,D4_x,D5_x,D6_x;
input   [`BIT_WIDTH_DATA-1:0]  D1_y,D2_y,D3_y,D4_y,D5_y,D6_y;
wire    [`BIT_WIDTH_DATA-1:0]  D7,D7_x,D7_y,
               D8,D8_x,D8_y,
               D9,D9_x,D9_y,
               D10,D10_x,D10_y;              
assign  D7=(D1>D2)? D1:D2;
assign  D8=(D3>D4)? D3:D4; 
assign  D9=(D5>D6)? D5:D6;    

assign  D7_x=(D1>D2)? D1_x:D2_x;
assign  D8_x=(D3>D4)? D3_x:D4_x; 
assign  D9_x=(D5>D6)? D5_x:D6_x;

assign  D7_y=(D1>D2)? D1_y:D2_y;
assign  D8_y=(D3>D4)? D3_y:D4_y; 
assign  D9_y=(D5>D6)? D5_y:D6_y;

assign  D10=(D7>D8)? D7:D8;


assign  D10_x=(D7>D8)? D7_x:D8_x;  
assign  D10_y=(D7>D8)? D7_y:D8_y;

assign  D_x=(D9>D10)? D9_x:D10_x;
assign  D_y=(D9>D10)? D9_y:D10_y;
endmodule  
                            

⌨️ 快捷键说明

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