ombadei
Member level 3
- Joined
- Sep 1, 2008
- Messages
- 62
- Helped
- 0
- Reputation
- 0
- Reaction score
- 0
- Trophy points
- 1,286
- Activity points
- 1,754
process(clkin)
begin
clkout <=clkin;
end process;
Architecture of blah behaviourial
begin
clkout <= clkin;
ombadei said:Thanks.. It has been most insightful..
Not wanting to start a new thread..Consider the below 2 code segments.. Is there a difference in compiling or implementing the design?
Code:process(clkin) begin clkout <=clkin; end process;
Code:Architecture of blah behaviourial begin clkout <= clkin;
The two codes are not the same. The difference is seen after the synthesis. The first code will require some circuits to be done (A flip flop with CLK and Input connected to CLKin)ombadei said:Thanks.. It has been most insightful..
Not wanting to start a new thread..Consider the below 2 code segments.. Is there a difference in compiling or implementing the design?
Code:process(clkin) begin clkout <=clkin; end process;
Code:Architecture of blah behaviourial begin clkout <= clkin;
Look sharp! Do you see an rising_edge(clk_in) condition that instantiates a flip-flop?The first code will require some circuits to be done (A flip flop with CLK and Input connected to CLKin).
FvM said:Look sharp! Do you see an rising_edge(clk_in) condition that instantiates a flip-flop?The first code will require some circuits to be done (A flip flop with CLK and Input connected to CLKin).
omara007 said:In my opinion, both statements will give identical results .. clkout <= clkin is itself considered a combinational process. The only difference is that you can't add more circuitry to the statement, while with the process statement you can do more.
Do you want the (clkout) to be an identical copy of (clkin) ?
You may want to think a moment about the possible different behaviour. You'll realize, that there is none - in this special case even in simulation, because no other signals are involved. Clkout is immediately following any change of clckout in both in both cases. It's obvious in the concurrent code, the wire case, but you get the same behaviour in the sequential code, the process, because of the sensitivity list.The code are differents. In the first code the process run only with a clkin event.
So clkout<=clkin at rise or falling edge or clkin.
For the second clkout=clkin, it's a wire.
Simulate them and you'll see the result are differents.
AdvaRes said:omara007 said:In my opinion, both statements will give identical results .. clkout <= clkin is itself considered a combinational process. The only difference is that you can't add more circuitry to the statement, while with the process statement you can do more.
Sorry omara007,
I dont see thinks like you.
The code are differents. In the first code the process run only with a clkin even.
So clkou<=clkin at rise or falling edge or clkin.
For the second clkou=clkin, it's a wire.
Simulate them and you'll see the result are differents.
omara007 said:Hi AdvaRes
Did you notice that this process [process(clk)] is considered combinational as long as you didn't specify an edge event inside ? .. in this case, the combinational process will yield exactly the same result as the combinational direct assignment statement. If you saw different results in the simulation, please post the snapshots here in the thread.
AdvaRes said:Hi members,
Theoritically it's true but I remember that this is not permitted by the tool when then CLOCK is in the sensitivity list like that.
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?