/
soc_15x15.lua
30 lines (27 loc) · 898 Bytes
/
soc_15x15.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
local R = require "rigel"
local SOC = require "soc"
local C = require "examplescommon"
local harness = require "harnessSOC"
local G = require "generators"
local RS = require "rigelSimple"
local RM = require "modules"
require "types".export()
local types = require "types"
local SDF = require "sdf"
local Zynq = require "zynq"
noc = Zynq.SimpleNOC():instantiate("ZynqNOC")
noc.extern=true
regs = SOC.axiRegs({},SDF{1,256},noc.readSource,noc.readSink,noc.writeSource,noc.writeSink):instantiate("regs")
------------
inp = R.input( types.uint(8) )
a = R.apply("a", C.plus100(types.uint(8)), inp)
b = R.apply("b", C.plus100(types.uint(8)), a)
p200 = RM.lambda( "p200", inp, b )
------------
hsfn = RM.makeHandshake(p200)
harness({
regs.start,
SOC.readBurst("15x15.raw",15,15,u(8),0,nil,nil,noc.read),
hsfn,
SOC.writeBurst("out/soc_15x15",15,15,u(8),0,nil,noc.write),
regs.done},nil,{regs})