case statements- verilog to vhdl

F

FP

I have the following scenario in verilog which i need to convert to
vhdl

always
if reset
..
..
..
else
case
.
.
.
end case
// set default values
case.
.
.
.
.
end case
end

How do I convert this to vhdl. I am lost on what the equivalent of //
set default values and the case statements after that would be in
VHDL.
 
D

Dave Pollum

I have the following scenario in verilog which i need to convert to
vhdl

always
if reset
.
.
.
else
case
.
.
.
end case
// set default values
case.
.
.
.
.
end case
end

How do I convert this to vhdl. I am lost on what the equivalent of //
set default values and the case statements after that would be in
VHDL.

I'm not a Verilog person, but I do have a book that shows both VHDL
and Verilog code ("HDL Chip Design", by Douglas J. Smiths). The book
shows that "//" is a Verilog comment. So, "// set default values" is
a comment. The Verilog "default" is the same as the VHDL "when others
=>". "always@ .. end" is the same as a VHDL "process .. end
process". In your case (no pun intended), it's a combinatorial
process.
HTH
-Dave Pollum
 
A

Andy

I'm not a Verilog person, but I do have a book that shows both VHDL
and Verilog code ("HDL Chip Design", by Douglas J. Smiths). The book
shows that "//" is a Verilog comment. So, "// set default values" is
a comment. The Verilog "default" is the same as the VHDL "when others
=>". "always@ .. end" is the same as a VHDL "process .. end
process". In your case (no pun intended), it's a combinatorial
process.
HTH
-Dave Pollum

The presence of "if reset" could imply that this is a clocked process,
not combinatorial. We can't tell because the "always" statement is not
included, and we cannot tell if the block is also sensitive to posedge
clock.

Andy
 
F

FP

The presence of "if reset" could imply that this is a clocked process,
not combinatorial. We can't tell because the "always" statement is not
included, and we cannot tell if the block is also sensitive to posedge
clock.

Andy- Hide quoted text -

- Show quoted text -

I have 2 case statement in 1 always loop in my verilog file. I am not
sure how this should be implemented in VHDL. I am aware of the syntax.
From design point of view I am not sure if I should be putting them in
2 seperate process statements.

Verilog =>

always @ posedge clk
c1 : case(cmd) is
when a => bunch of statements
when b => bunch of statements
when c => bunch of statements
when d => bunch of statements
default => bunch of statements
end case c1

c2 : case(cmd) is
when a => bunch of statements
when b => bunch of statements
when c => bunch of statements
when d => bunch of statements
default => bunch of statements
end case c2

end

My question is
1) Is the VHDL equivalent of the above, 2 case statements in one
process or 2 different processes with 1 case each? The problem with 2
processes I am facing is access of varaibles.
2) The above is similar to an FSM. One case statement is executing the
present command, while the other is completing the last command. Any
idea on how this should be converted to VHDL?
 
M

Mike Treseler

FP said:
From design point of view I am not sure if I should be putting them in
2 seperate process statements.

No. One verilog block is one vhdl process.
My question is
1) Is the VHDL equivalent of the above, 2 case statements in one
process or 2 different processes with 1 case each?

one process
2) The above is similar to an FSM. One case statement is executing the
present command, while the other is completing the last command. Any
idea on how this should be converted to VHDL?

Did the verilog version work?

-- Mike Treseler
 
F

FP

No. One verilog block is one vhdl process.


one process


Did the verilog version work?

         -- Mike Treseler

The verilog code works but I havent deisnged it. So, I am not sure how
its implementation in VHDL woould be.
 
M

Mike Treseler

FP said:
The verilog code works but I havent deisnged it. So, I am not sure how
its implementation in VHDL woould be.

Unless you post the code, neither am I.

-- Mike Treseler
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,744
Messages
2,569,484
Members
44,903
Latest member
orderPeak8CBDGummies

Latest Threads

Top