Sidsh

Dijkstra without input data

Feb 5th, 2022 (edited)
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. module Dijkstra2 (input clk);
  2.  
  3. reg [11:0] cost [0:6][0:6];
  4.  
  5. reg [0:5] key;
  6.  
  7. parameter inf = 999;
  8. integer min;
  9. parameter n=37;
  10. integer src;
  11. integer u;
  12. integer i;
  13.  
  14.     // always @(posedge clk)
  15.    
  16.      function [0:49] getMin;
  17.      input [0:6] key;
  18.      input [0:6] i;
  19.      input [0:5] dist;
  20.      input [0:1] visited;
  21.         begin
  22.             for(i=0; i<n; i=i+1)
  23.                
  24.                 begin
  25.                 if(!visited[i] && dist [i] < min)
  26.                      begin
  27.                 min = dist[i];
  28.                 key = i;
  29.  
  30.                     end  
  31.                 end  
  32.             end      
  33.      endfunction
  34.     // end
  35.    //  end
  36.    
  37. /*reg [0:49] par;
  38. reg [0:49] dist;
  39. reg [0:49] visited;
  40. reg [0:49] g;
  41. reg [0:9] k;
  42. reg [0:9] v;*/
  43.  
  44.  
  45.  
  46. //always @(posedge clk)
  47.   // begin
  48.      
  49.      function dijkstra ;
  50.         input [0:49] par;
  51.         input [0:49] dist;
  52.         input [0:49] visited;
  53.         input [0:49] g;
  54.         input [0:9] k;
  55.         input [0:9] v;
  56.  
  57.         begin
  58.           dist[src] = 0;
  59.         par[src] = 1 ;
  60.          
  61.           // assign u = getMin(dist,visited);
  62.          
  63.             for (k=0; k <=n-1; k=k+1)
  64.                 begin u = getMin(key, i, dist, visited);
  65.                  for    (v=0; v < n; v = v+1)
  66.                   begin
  67.                         if(visited[v] != 1 && dist[u] + cost[u][v] < dist[v] && cost[u][v] != inf  )
  68.                     begin
  69.                     par[v] = u;
  70.                     dist[v] = dist[u] + cost[u][v];
  71.                     end
  72.                    end
  73.                  end
  74.                 end
  75.            
  76.      
  77.      endfunction    
  78. integer j;  
  79. integer in;
  80. initial begin
  81.  
  82.      in =$fopen("input.txt","r");
  83.      while(! $feof(in)) begin
  84.      
  85. for (i = 0; i < 6; i=i+1)
  86. begin
  87.     for (j = 0; j < 6; j=j+1)
  88.     begin
  89.      $fgetc(cost[i][j],in);
  90.      
  91.     end  
  92. end
  93. $fclose(in);
  94. end
  95. end
  96.  
  97.    // end
  98. //end
  99.  
  100. endmodule
  101.    
Add Comment
Please, Sign In to add comment