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

📄 xact.v

📁 一个用verilog编写的总线仲裁程序。多个设备共享总线
💻 V
字号:
module xact(Req, chk_coverage, Clk, Reset_l, Gnt);

output [3:0]Req;
output Clk;
output Reset_l;
output chk_coverage;
input [3:0]Gnt;

reg [3:0]Req;
reg Clk, Reset_l;
reg chk_coverage;
reg [31:0] random_number;

integer random_seed;
integer count;

initial 
begin
  Req <= 4'b0000;
  Clk <= 1'b0;
  Reset_l <= 1'b0;
  random_seed = 1;
  random_number <= 32'h0000_0000;
  count = 1;
  chk_coverage <= 1'b0;
end


initial
begin
  #5;
  Reset_l <= 1'b0;
  #100;
  Reset_l <= 1'b1;
  #10;
  random_number <= $random(random_seed);
  Req <= random_number[23:20];
  #60000;
  chk_coverage <= 1'b1;
  #100;
  $finish;
end

always 
#10  Clk <= ~Clk;

always @(negedge Clk)  
begin
  count = count + 1;
  if(count % 50 == 0)
    begin
    random_number <= $random(random_seed);
    Req <= random_number[23:20];
    end
end

always @(posedge Gnt[0])
    if(Req[0])
        Req[0] <= @(posedge Clk)1'b0;

always @(posedge Gnt[1])
    if(Req[1])
        Req[1] <= @(posedge Clk)1'b0;

always @(posedge Gnt[2])
    if(Req[2])
        Req[2] <= @(posedge Clk)1'b0;

always @(posedge Gnt[3])
    if(Req[3])
        Req[3] <= @(posedge Clk)1'b0;

endmodule



⌨️ 快捷键说明

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