Skip to content

metwse/boolean-script

Repository files navigation

Boolean Script

Embriyonic boolean algebra evaluation virtual machine

See grammar.md for language definition.

expr half_adder(a, b) -> (sum, carry) {
    sum = (a + b) * (a * b)'
    carry = a * b
}

contribute -Wai-slop

no-ai-slop

Contributions are welcome! Please check our Code of Conduct before submitting pull requests.

Future Plans

HDL-like features:

expr xor(a, b) -> (y) {
    y = (a + b) * (a * b)'
}

expr full_adder(a, b, cin) -> (sum, cout) {
    ab = xor(a, b)
    sum = xor(ab, cin)
    cout = (a * b) + (cin * (a + b))
}

sync {
    vec<4> cnt = [0, 0, 0, 0]

    @clk {
        cnt0, c0 = full_adder(cnt[0], 1, 0)
        cnt1, c1 = full_adder(cnt[1], 0, c0)
        cnt2, c2 = full_adder(cnt[2], 0, c1)
        cnt3, c3 = full_adder(cnt[3], 0, c2)

        cnt = [cnt0, cnt1, cnt2, cnt3]
    }
}

...electronics simulation using Boolean script

About

A boolean algebra evaluation VM

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published