added license, moved cell libs into repo

added buffer (not tested),
This commit is contained in:
2022-02-21 00:14:02 +01:00
parent 4bf73a8566
commit 48b691d7d4
17 changed files with 1571 additions and 91 deletions

View File

@ -0,0 +1,9 @@
import template::dataflow_neuro
defproc fifo3_8bit (avMx1of2<8> A; avMx1of2<8> Y)
{
avMx1of2<8> _0to1,_1to2;
buffer<8> buf0 (.in=A, .out=_0to1);
buffer<8> buf1 (.in=_0to1, .out=_1to2);
buffer<8> buf2 (.in=_1to2, .out=Y);
}

View File

@ -0,0 +1,40 @@
set-channel-neutral "t.A" 8
set t.Y.a 0
cycle
system "echo 'reset completed'"
status X
set Reset 0
mode run
cycle
assert t.A.a 0
assert-channel-neutral "t.Y" 8
set-channel-valid "t.A" 8 2
system "echo 'sending first set A'"
cycle
assert t.A.a 1
set-channel-neutral "t.A" 8
cycle
assert t.A.a 0
system "echo 'checking first set'"
assert-channel-valid "t.Y" 8 2
set t.Y.a 1
cycle
assert-channel-neutral "t.Y" 8
set t.Y.a 0
system "echo 'sending second set'"
set-channel-valid "t.A" 8 95
cycle
assert t.A.a 1
set-channel-neutral "t.A" 8
cycle
system "echo 'checking second set'"
assert t.A.a 0
assert-channel-valid "t.Y" 8 95

124
test/unit_tests/helper.scm Normal file
View File

@ -0,0 +1,124 @@
(define % (lambda (x y) (- x (* y (truncate (/ x y))))))
(define dualrail-bit
(lambda (x i)
(let ((tmp
(string-append x
(string-append ".d["
(string-append (number->string i) "]")
)
)
))
(list (string-append tmp ".f") (string-append tmp ".t"))
)
)
)
(define assert-var-bit
(lambda (x i v)
(let ((tmp (dualrail-bit x i)))
(begin
(assert (car tmp) (- 1 v))
(assert (cadr tmp) v)
)
)
)
)
(define assert-var-int
(lambda (x width value)
(letrec ((assert-one-bit
(lambda (v i)
(cond
((=? i width) #t)
(#t (begin
(assert-var-bit x i (% v 2))
(assert-one-bit (truncate (/ v 2)) (+ i 1))
)
)
)
)
))
(assert-one-bit value 0)
)
)
)
(define assert-channel-valid
(lambda (ch width value)
(assert-var-int (string-append ch ".d") width value)
)
)
(define assert-channel-neutral
(lambda (ch width)
(letrec ((helper
(lambda (i)
(cond
((=? i width) #t)
(#t (let ((tmp (dualrail-bit (string-append ch ".d") i)))
(begin
(assert (car tmp) 0)
(assert (cadr tmp) 0)
(helper (+ 1 i))
)
)
)
)
)
)
)
(helper 0)
)
)
)
(define set-channel-neutral
(lambda (ch width)
(letrec ((ch-name (string-append ch ".d"))
(helper
(lambda (i)
(cond
((=? i width) #t)
(#t (let ((tmp (dualrail-bit ch-name i)))
(begin
(set (car tmp) 0)
(set (cadr tmp) 0)
(helper (+ 1 i))
)
)
)
)
)
))
(helper 0)
)
)
)
(define set-channel-valid
(lambda (ch width val)
(letrec ((ch-name (string-append ch ".d"))
(helper
(lambda (i v)
(cond
((=? i width) #t)
(#t (let ((tmp (dualrail-bit ch-name i)))
(begin
(set (car tmp) (- 1 (% v 2)))
(set (cadr tmp) (% v 2))
(helper (+ 1 i) (truncate (/ v 2)))
)
)
)
)
)
))
(helper 0 val)
)
)
)
(define assert-var-bool (lambda (x v) (assert-var-int x 1 v)))

View File

@ -0,0 +1,11 @@
initialize
load-scm "helper.scm"
random
set GND 0
set Vdd 1
mode reset
set Reset 1
cycle
status U