kudo1017
Newbie level 4
- Joined
- Dec 1, 2011
- Messages
- 6
- Helped
- 0
- Reputation
- 0
- Reaction score
- 0
- Trophy points
- 1,281
- Location
- Shanghai, China
- Activity points
- 1,338
As a newbie in this industry, im now very eager to learn about proficient skills of signal sequence building.
As I was checking about those codes inherented in the database, I find those styles are so different from what I've learnt in the universities.
I wonder if there's any book or well-known paper writing regarding of this?
I just perceived of this concept (signal building)
How do u guys usually do after u've got a new module design task?
Normally we are expecting to receive a pinlist, a functional description, port sequence protocols, delay requirements, and maybe algorithm in C and so on.
How do we start our work to make it more efficient? like how to predefine the inner register list from signal sequence building consideration? how to trace the state shifting to make sure both required signals not to mismatch each other cause of wrong delay estimation? I was getting frustrating lately because of this. I thought I have perfectly planned everything, however it failed by last cause 1 clk period delay mismatch in the datapath and control path.
I've been very admired of a newly learnt coding style, that is to rip all combinational logics off FSM and finish it's building work with all logical descriptions. I really wanna master this style but I find out I always make mistakes. Here's an example:
//conbinational logic that ripped off from FSM
always@(*) begin
nxt_state=0;
case(state)
0: begin
if(a) nxt_state=1;
else if(b) nxt_state=2;
else nxt_state=0;
end
1: nxt_state=2;
2: nxt_state=0;
endcase
end
//FSM
always@(posedge clk or negedge rst_n) begin
if(rst_n) state<=0;
else state<=nxt_state;
end
Is anyone here in favour of this style? This one is simple, but while I was designing a core to bus bridge, I always have to patch my original idea again and again to really make it work. And this, for me, must be wrong with the way I work. I need some suggestions.
How did u guys improve urself at the beginning when u started ur career in digital IC design?
As I was checking about those codes inherented in the database, I find those styles are so different from what I've learnt in the universities.
I wonder if there's any book or well-known paper writing regarding of this?
I just perceived of this concept (signal building)
How do u guys usually do after u've got a new module design task?
Normally we are expecting to receive a pinlist, a functional description, port sequence protocols, delay requirements, and maybe algorithm in C and so on.
How do we start our work to make it more efficient? like how to predefine the inner register list from signal sequence building consideration? how to trace the state shifting to make sure both required signals not to mismatch each other cause of wrong delay estimation? I was getting frustrating lately because of this. I thought I have perfectly planned everything, however it failed by last cause 1 clk period delay mismatch in the datapath and control path.
I've been very admired of a newly learnt coding style, that is to rip all combinational logics off FSM and finish it's building work with all logical descriptions. I really wanna master this style but I find out I always make mistakes. Here's an example:
//conbinational logic that ripped off from FSM
always@(*) begin
nxt_state=0;
case(state)
0: begin
if(a) nxt_state=1;
else if(b) nxt_state=2;
else nxt_state=0;
end
1: nxt_state=2;
2: nxt_state=0;
endcase
end
//FSM
always@(posedge clk or negedge rst_n) begin
if(rst_n) state<=0;
else state<=nxt_state;
end
Is anyone here in favour of this style? This one is simple, but while I was designing a core to bus bridge, I always have to patch my original idea again and again to really make it work. And this, for me, must be wrong with the way I work. I need some suggestions.
How did u guys improve urself at the beginning when u started ur career in digital IC design?
Last edited: