For discussion today... I tried adding another type to the PutImp below and I want to walk through it to get clarification on if this makes sense, if this is what was asked for and how to put rules behind it, as requested two weeks ago. More to come. -Tom
interface class PutImp#(type T = logic, string MyPutSignal = "a");
pure virtual task void put(T MyPutSignal);
endclass
interface class GetImp#(type T = logic);
pure virtual task T get();
endclass
class Fifo#(type T = logic, DEPTH = 1) implements PutImp#(T), GetImp#(T);
T [DEPTH-1:0] myFifo;
virtual task void put(T, a);
// Put implementation
virtual task T get();
// Get implementation
endclass
class MyQueue(type T = logic, DEPTH = 1, string MyPutSignal = "a");
T [DEPTH-1:0] PipeQueue[$];
virtual function void deleteQ();
// Delete implementation
endfunction
endclass
class Fifo extends MyQueue#(T, DEPTH), implements PutImp#(T), GetImp#(T);
virtual task void put(T, b);
// Put implementation
virtual task T get();
// Get implementation
endclass
Need more interesting types instead of just 'T'. Pass in two different types, have put and get use two different types working in each case. Why not explicitly state this?. So we need rules behind them and not just examples.
-- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean.Received on Mon Nov 8 11:04:30 2010
This archive was generated by hypermail 2.1.8 : Mon Nov 08 2010 - 11:04:41 PST