Исправь следующий код на Verilog, нужно сделать так, что wr_ch содержал только 1 еденицу, указывающий в котороый канал нужно записать.
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: 
// Engineer: 
// 
// Create Date: 30.03.2023 12:32:14
// Design Name: 
// Module Name: teg_mem
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//////////////////////////////////////////////////////////////////////////////////


module teg_mem (A, wr, clk, reset, hit, chan);
  parameter ATEG_WIDTH = 7;
  parameter AINDEX_WIDTH = 4;
  parameter CHAN_WIDTH = 2;
  input clk;
  input reset;
  input [ATEG_WIDTH + AINDEX_WIDTH - 1:0] A;
  input wr;
  output hit;
  output [CHAN_WIDTH-1:0] chan;
  localparam CHAN_CNT = 2**CHAN_WIDTH;
  //wire [ATEG_WIDTH-1:0] chTegOUT [CHAN_CNT - 1:0];
  wire [CHAN_CNT - 1:0] chHit;
  reg [CHAN_CNT - 1:0] chMRU_IN;
  wire [CHAN_CNT - 1:0] chVal;
  wire [CHAN_CNT - 1:0] chMRU_OUT;
  wire [CHAN_CNT - 1:0] wr_ch;
  reg [CHAN_CNT - 1:0] wr_ch_tmp={CHAN_CNT{1'b1}};
  reg [CHAN_WIDTH-1:0] hitChan;
  reg [CHAN_WIDTH-1:0] MRUChan;
  reg [CHAN_WIDTH-1:0] freeChan;
  wire hitAll;
  wire freeAll;
  reg break;
  reg ALL_MRU; 
  integer j;
  integer hit_ind;
  integer mru_ind;
  integer update_ind;
  integer free_ind;
  genvar i;
  generate
    for (i = 0; i < CHAN_CNT; i = i + 1) begin
        teg_mem_ch teg_mem_ch_inst (
      