Handel-C Vs Verilog Speed Difference!

Status
Not open for further replies.

CMOS

Advanced Member level 3
Joined
Jan 6, 2004
Messages
862
Helped
94
Reputation
186
Reaction score
50
Trophy points
1,308
Location
USA
Activity points
5,673
I just tried this simple LED blinking code in Verilog and Handel-C. The result I got was stunning. The verilog version blinks LED at much faster rate than Handel-C version on the same FPGA board. Can anyone explain the reason!

Here are the codes
1. Verilog
Code:
module LEDBlink(led1, led2, clk);
input clk;
output led1;
output led2;

reg [23:0] cnt;
always @(posedge clk) cnt<=cnt+24'h1;
assign led1 = cnt[20] & cnt[22] & cnt[23];
assign led2 = cnt[23];

endmodule

2. Handel-C Code
Code:
set clock = external "10" with {rate = 24, standard = "LVTTL"};

unsigned int 1 led1;
interface bus_out() led_pin1(unsigned int 1 led_pin1 = led1) with {data={"97"}, standard = "LVTTL"};

unsigned int 1 led2;
interface bus_out() led_pin2(unsigned int 1 led_pin2 = led2) with {data={"91"}, standard = "LVTTL"};

void main(void)
{
	unsigned int 24 cnt;
	while(1)
	{
		cnt++;
		led1 = cnt[20] & cnt[22] & cnt[23];
		led2 = cnt[23];
	}
}
 

this is because handle-c is sequental you should put a par statement

par
{
x
y
x
}
 

    CMOS

    Points: 2
    Helpful Answer Positive Rating
does this mean you cant put parallelism in your design with Handel-C???????????
 

it actually say you can, just remember to put the par { } before
assigments.
 

okay so par means parallel??? is that right?
 

samcheetah said:
okay so par means parallel??? is that right?
Yes par = parallel and seq = sequential. By default all statement execute sequentially unless written in par block.

EDALIST said:
this is because handle-c is sequental you should put a par statement

par
{
x
y
x
}

Yes that works! Silly me..how could I forget that thing Thanks.


One more thing. Can you tell me how do you define high impedance state in Handel-C. I want to convert this Verilog statement to Handel-C,
Code:
assign FX2_FD = FIFO_DATAOUT_OE ? FIFO_DATAOUT : 8'hZZ;
 

AN EXAMPLE FOR BUS :

interface bus_ts_clock_in (int 4 read)
BiBus(int 4 writePort=x+1,
unsigned 1 enable=condition)
with {data = {"P4", "P3", "P2", "P1"}};

condition = 0; // Tri-state external pins
x = BiBus.read; // Read registered value
condition = 1; // Drive x+1 onto the pins
 

    CMOS

    Points: 2
    Helpful Answer Positive Rating
EDALIST, you seem to be a Guru of Handel-C. I will try that out.
 

Hey EDALIST, can you name some good tutorial/e-book/book on Handel-C? The Celoxica manual doesnt seem complete as I cant find many things in it. Our school has DK2.0.
 

here is dk 4 handlec user guide
 

Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…