OpenCores
URL https://opencores.org/ocsvn/wisbone_2_ahb/wisbone_2_ahb/trunk

Subversion Repositories wisbone_2_ahb

[/] [wisbone_2_ahb/] [branches/] [toomuch/] [svtb/] [avm_svtb/] [wb_ahb_driver.svh] - Blame information for rev 11

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 5 toomuch
//******************************************************************************************************
2
// Copyright (c) 2007 TooMuch Semiconductor Solutions Pvt Ltd.
3
 
4
 
5
//File name             :       wb_ahb_driver.svh
6 8 toomuch
//Designer              :       Ravi S Gupta
7
//Date                  :       4 Sept, 2007
8 5 toomuch
//Description           :       Drivers for WISHBONE_AHB Bridge
9
//Revision              :       1.0
10
 
11
//******************************************************************************************************
12
 
13
// driver class
14
import avm_pkg::*;
15
import global::*;
16
class wb_ahb_driver extends avm_threaded_component;
17
 
18
avm_nonblocking_get_port #(wb_req_pkt) request_port;
19
tlm_fifo #(wb_req_pkt) fifo;
20
 
21
virtual wb_ahb_if pin_if;
22
 
23
        function new(string name ,avm_named_component parent);
24
                super.new(name,parent);
25
                request_port =new("request_port",this);
26
                fifo =new("fifo",this);
27
                pin_if = null;
28
        endfunction
29
 
30
task run;
31
        wb_req_pkt req;
32
        wb_res_pkt res;
33
        forever
34
                begin
35
                        @(posedge pin_if.master_wb.clk_i);
36
                                        if(pin_if.master_wb.cyc_i && !pin_if.master_wb.rst_i)
37
                                                begin
38 8 toomuch
                                                        if(pin_if.master_wb.we_i)
39
                                                                begin
40
                                                                if(request_port.try_get(req))
41
                                                                write_to_bus(req);
42
                                                                end
43
                                                        else
44
                                                                begin
45
                                                                @(posedge pin_if.master_wb.clk_i);
46
                                                                if(request_port.try_get(req))
47
                                                                write_to_bus(req);
48
                                                                end
49
 
50 5 toomuch
                                                end
51
                end
52
endtask
53
 
54
// write data to bus
55
virtual task write_to_bus(input wb_req_pkt req);
56
                #2      pin_if.master_wb.we_i=req.wr;
57
                        pin_if.master_wb.addr_i =req.adr;
58
                        pin_if.master_wb.data_i=req.dat;
59
                        pin_if.master_wb.stb_i=req.stb;
60 8 toomuch
 
61 5 toomuch
endtask
62
 
63
endclass
64
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.