Wanna quick solution to identify overflows? – Use RISC-V branches

The final instruction which is ‘bne’ is ‘branch if not equal’ which is essentially means to branch to a different address location pointed by ‘overflow’, if t3 is not equal to t4, which is the case here. So, here’s where the overflow is detected and an error message will be printed out, informing ‘you are out of range’

Continue reading

Bottoms up – From STA to RISC-V architecture

In on opensource RISC-V implementation flow, you move from right (Hardware) to Left (application program), and then coming from left, if you stop at middle (RISC-V ISA), that’s when you start thinking about this architecture from all angles, like sta, drc, congestion, clock skew, io latency, static and dynamic power, IR and many more

Continue reading

ABI – Get this one right – RISC-V is all yours..

ABI (application binary interface), as the name says, is an interface, that helps programs access system hardware and services.RISC-V architecture has 32 registers (we explained, in detail, why this architecture has 32 registers in our online course). Application programmer, can access each of these 32 registers through its ABI name, for example, you need know the value of stack pointer or move the stack pointer, all you need to do is “addi sp, sp, -16”, where ‘sp’ is the ABI name of stack pointer.

Continue reading

VSDSYNTH – An unique UI for synthesis and pre-layout timing

online VLSI courses using open-source tools, VSDSYNTH, our new product (currently in beta testing) is unique UI that will take in inputs in form of RTL netlist and read standard SDC format constraints. The UI will generate synthesized netlist and pre-layout timing reports, hereby giving you first hand information on the quality of your RTL design

Continue reading

From RISC-V architecture to Layout – Coming Soon

A high-level program, like swap.c as shown below is first converted to an assembly language program (RISC-V in below example) using compiler. This assembly language is converted to binary machine language program using an assembler. This level of abstraction of your application using high-level programming languages like C, C++, Java or Visual Basic, proves to be a great idea to improve design

Continue reading