aboutsummaryrefslogtreecommitdiffstats
path: root/examples/intel/MAX10/top.v
blob: 2bada0e21880ecba26551b1db7277aa2f608093c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
`default_nettype none
module top ( output wire [6:0] HEX0, HEX1, HEX2, HEX3, HEX4, HEX5, HEX6, HEX7,
             input  wire [15:0] SW );


    sevenseg UUD0 (.HEX0(HEX0), .SW(4'h7));
    sevenseg UUD1 (.HEX0(HEX1), .SW(4'h1));
    sevenseg UUD2 (.HEX0(HEX2), .SW(4'h0));
    sevenseg UUD3 (.HEX0(HEX3), .SW(4'h2));
    sevenseg UUD4 (.HEX0(HEX4), .SW(SW[3:0]));
    sevenseg UUD5 (.HEX0(HEX5), .SW(SW[7:4]));
    sevenseg UUD6 (.HEX0(HEX6), .SW(SW[11:8]));
    sevenseg UUD7 (.HEX0(HEX7), .SW(SW[15:12]));

endmodule
ERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. **************************************************************************************************/ #ifndef BoundedQueue_h #define BoundedQueue_h #include "sat/glucose2/Vec.h" ABC_NAMESPACE_CXX_HEADER_START //================================================================================================= namespace Gluco2 { template <class T> class bqueue { vec<T> elems; int first; int last; uint64_t sumofqueue; int maxsize; int queuesize; // Number of current elements (must be < maxsize !) bool expComputed; double exp,value; public: bqueue(void) : first(0), last(0), sumofqueue(0), maxsize(0), queuesize(0),expComputed(false) { } void initSize(int size) {growTo(size);exp = 2.0/(size+1);} // Init size of bounded size queue void push(T x) { expComputed = false; if (queuesize==maxsize) { assert(last==first); // The queue is full, next value to enter will replace oldest one sumofqueue -= elems[last]; if ((++last) == maxsize) last = 0; } else queuesize++; sumofqueue += x; elems[first] = x; if ((++first) == maxsize) {first = 0;last = 0;} } T peek() { assert(queuesize>0); return elems[last]; } void pop() {sumofqueue-=elems[last]; queuesize--; if ((++last) == maxsize) last = 0;} uint64_t getsum() const {return sumofqueue;} unsigned int getavg() const {return (unsigned int)(sumofqueue/((uint64_t)queuesize));} int maxSize() const {return maxsize;} double getavgDouble() const { double tmp = 0; for(int i=0;i<elems.size();i++) { tmp+=elems[i]; } return tmp/elems.size(); } int isvalid() const {return (queuesize==maxsize);} void growTo(int size) { elems.growTo(size); first=0; maxsize=size; queuesize = 0;last = 0; for(int i=0;i<size;i++) elems[i]=0; } double getAvgExp() { if(expComputed) return value; double a=exp; value = elems[first]; for(int i = first;i<maxsize;i++) { value+=a*((double)elems[i]); a=a*exp; } for(int i = 0;i<last;i++) { value+=a*((double)elems[i]); a=a*exp; } value = value*(1-exp)/(1-a); expComputed = true; return value; } void fastclear() {first = 0; last = 0; queuesize=0; sumofqueue=0;} // to be called after restarts... Discard the queue int size(void) { return queuesize; } void clear(bool dealloc = false) { elems.clear(dealloc); first = 0; maxsize=0; queuesize=0;sumofqueue=0;} }; } //================================================================================================= ABC_NAMESPACE_CXX_HEADER_END #endif