From d16f87b99018bd8d56aa13b02447ed2c9968ee86 Mon Sep 17 00:00:00 2001 From: Steven Hugg Date: Wed, 13 Nov 2019 19:32:20 -0600 Subject: [PATCH] fixed waveform bug; added VL_DIVS_III --- src/ide/waveform.ts | 3 ++- src/platform/verilog.ts | 11 ++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/ide/waveform.ts b/src/ide/waveform.ts index df8587d2..631236bb 100644 --- a/src/ide/waveform.ts +++ b/src/ide/waveform.ts @@ -69,7 +69,8 @@ export class WaveformView { itemHeight: rowHeight, totalRows: this.meta.length, generatorFn: (row : number) => { - var s = this.meta[row].label; + var metarow = this.meta[row]; // TODO: why null? + var s = metarow != null ? metarow.label : ""; var linediv = document.createElement("div"); var canvas = document.createElement("canvas"); canvas.width = width - 12; diff --git a/src/platform/verilog.ts b/src/platform/verilog.ts index ca0eeb55..ca9dad73 100644 --- a/src/platform/verilog.ts +++ b/src/platform/verilog.ts @@ -100,8 +100,17 @@ export function VL_DIV_III(lbits,lhs,rhs) { export function VL_MODDIV_III(lbits,lhs,rhs) { return (((rhs)==0)?0:(lhs)%(rhs)); } +export function VL_DIVS_III(lbits,lhs,rhs) { + var lhs_signed = VL_EXTENDS_II(32, lbits, lhs); + var rhs_signed = VL_EXTENDS_II(32, lbits, rhs); + return (((rhs_signed)==0)?0:(lhs_signed)/(rhs_signed)); +} + export function VL_MODDIVS_III(lbits,lhs,rhs) { - return (((rhs)==0)?0:(lhs)%(rhs)); } + var lhs_signed = VL_EXTENDS_II(32, lbits, lhs); + var rhs_signed = VL_EXTENDS_II(32, lbits, rhs); + return (((rhs_signed)==0)?0:(lhs_signed)%(rhs_signed)); +} export function VL_REDXOR_32(r) { r=(r^(r>>1)); r=(r^(r>>2)); r=(r^(r>>4)); r=(r^(r>>8)); r=(r^(r>>16));