直接读入 wasm binary 进行解析
This commit is contained in:
parent
4e53d54c37
commit
34dc4a004d
@ -110,8 +110,8 @@ function parseTimescale(timescale) {
|
|||||||
* clean: () => void
|
* clean: () => void
|
||||||
* }}
|
* }}
|
||||||
*/
|
*/
|
||||||
async function makeVcdStream() {
|
async function makeVcdStream(moduleArg) {
|
||||||
const vcdstream = await getVcdStream();
|
const vcdstream = await getVcdStream(moduleArg);
|
||||||
// 使用 vcdstream 的 any 回调获取波形数据,并按照正确的格式进行解码和存储
|
// 使用 vcdstream 的 any 回调获取波形数据,并按照正确的格式进行解码和存储
|
||||||
// 这段处理来自 https://github.com/wavedrom/vcd 的 vcd-pipe-deso.js 的 58 行
|
// 这段处理来自 https://github.com/wavedrom/vcd 的 vcd-pipe-deso.js 的 58 行
|
||||||
// 请严格对准转换规则
|
// 请严格对准转换规则
|
||||||
@ -203,8 +203,8 @@ function consume(vcdstream, arraybuffer, config) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async function getVcdStream() {
|
async function getVcdStream(moduleArg) {
|
||||||
const wasm = await createVCD();
|
const wasm = await createVCD(moduleArg);
|
||||||
const vcdstream = await webVcdParser(wasm);
|
const vcdstream = await webVcdParser(wasm);
|
||||||
return vcdstream;
|
return vcdstream;
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
browserify ./bin/vcd.js | terser --compress -o ./out/vcd-web.js
|
browserify ./bin/vcd.js | terser --compress -o ./out/vcd-web.js
|
||||||
sed -i -e 's/wasmBinaryFile=Module.locateFile?Module.locateFile(path,scriptDirectory):scriptDirectory+path/wasmBinaryFile=self.location.href.replace("worker.js", "vcd.wasm")/g' out/vcd-web.js
|
sed -i -e 's/wasmBinaryFile=Module.locateFile?Module.locateFile(path,scriptDirectory):scriptDirectory+path/wasmBinaryFile=Module.locateFile?Module.locateFile(path,scriptDirectory):scriptDirectory+path/g' out/vcd-web.js
|
||||||
cp out/vcd-web.js $1/public/vcd.js
|
cp out/vcd-web.js $1/public/vcd.js
|
||||||
cp out/vcd.wasm $1/public/vcd.wasm
|
cp out/vcd.wasm $1/public/vcd.wasm
|
||||||
|
23
test/test.js
Normal file
23
test/test.js
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
const fs = require('fs');
|
||||||
|
const { makeVcdStream } = require('../bin/vcd');
|
||||||
|
const createVcd = require('../out/vcd.js');
|
||||||
|
|
||||||
|
async function main() {
|
||||||
|
const wasmBinary = fs.readFileSync('./vcd.wasm');
|
||||||
|
const wasm = await createVcd({ wasmBinary });
|
||||||
|
console.log(wasm);
|
||||||
|
|
||||||
|
|
||||||
|
return;
|
||||||
|
|
||||||
|
// const vcdstream = await makeVcdStream();
|
||||||
|
// const arraybuffer = fs.readFileSync('./test/samples/iverilog.small.vcd');
|
||||||
|
// const answers = JSON.parse(fs.readFileSync('./test/samples/iverilog.small.json'));
|
||||||
|
|
||||||
|
// vcdstream.consume(arraybuffer);
|
||||||
|
// const info = vcdstream.getBasicInfo();
|
||||||
|
// const values = info.signalValues;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
main();
|
Loading…
x
Reference in New Issue
Block a user