Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.
Behavioural and RTL...
Hmmm.. I think it depends on the perception of the designers...
These days any synthesisable code is said as RTL Code.
And code that can only be simulated is behavioral code..
but some people say code which is implemented in a behvioral fashion without thinking of the actual circuit formed while synthesis, as behavioral code..
However, digital designers usually use the term behavioural model for non-synthesizable models (faster to simulate and easy to debug) and the term RTL for the synthesizable models (although it might not be a pure RTL).
both depends on how the programmers perceive it.. Almost all synthesisable codes are RTL.. in behavioral modelling (in VHDL) we have a whloe lot of conditional statements that go into the design.. RTL in its purest form will have connections between different basic elements...
RTL - going by defintion is a coding style which explains logic between 2 registers or register and input/output port . When not coded in this way it used to be know as behavioral coding style as most synthesis tool then could not synthesise unless you followed RTL way of coding . But many synthesis tools are able to recongize logic even when code is not in RTL .
for (i = 0 ; i < 7; i = i + 1)
a = b [ i + 1] ;
Although this is behavioral code get2chip tool of cadence is still able to convert this code to h/w .
But now a days behavioral code is usally ment to describe code which designer is not intreseted in converting to h/w . For example a code to immitate memoy blocks . This need not synthesised persay but used only to model the delays associated with the memory block . Hope this answers your question.
In RTL design a circuit is described as a set of registers and a set of transfer functions describing the flow of data between the registers. In complex design,
this is main for hardware designer using synthesis
While coding in Behaviour the hardware designer is not much worried about synthesis, but only target is simulation..
RTL coding is describing the system in terms of expressions,clocks and registers,mannually binding operation to specific clocl periods.So everything is about how data tranfer takes place between registers WRT clocks.
Behavioral coding describe the design in algorithmic way that is the functionality is defined by which operation must occur not by how they are implemented in hardware.
I agree with Smith_kang
Behavioural description is a programming the design using algos like in C
just it shows how the design works
where as RTL is the description of the function at block level where each block may be synthesizable
for example take a shift and add multiplier
in behavioural description it just shows how multipilcation is done using shifting operation like programming in C
where as in RTL it describes the registers, shifting operation in registers, control unit and so on..
RTL coding is structurer, we code base on the hardware arhictecture.
Behavioral coding is for simulation, to make sure the algorithm or functionality of the system work, without concerning the actual hardware architecture.
function [7:0] multi;
input [3:0] I,I1;
function [7:0] multi;
input [3:0] I,I1;
In the former we realized the multiplier abstractly we but didnt mention how , in the latter
we showcased that it is through shift and add,
which can be implemented, as is the case with
today's processors where the multiplier unit is
hardwired or comes with math coprocessor.
I agree with Wizkid, that the meaning of the terms RTL & Behavioral depends on the perception of the designers. Here we use the term System-Level Modeling to describe non-sysnthesizable code that is just used for simulations. RTL for sysnthesizable code.
We use the term Behavioral Model to describe high level description of a circuit that can be used to generate RTL model. The coding style and statements used to describe a Behavioral model are very resctricted. While compiling Behavioral code, user can control the clock cycle constraints by varying the number of pipeline stages. This allows user to quickly explore the design space by changing clock cycle constraints. The output of Behavioral Compiler will be an RTL code.