This article is about the comparison of rtl from different tools for earlier design level to pulse converter. Please refer the article level-to-pulse-converter for more details. It is continuous part of that article only.

level to pulse converter rtl design

for the experiment we took the same code from the earlier L-to-P converter circuit code for reference here  also we place for you.

code is given below for moore fsm

library IEEE;
use IEEE.std_logic_1164.all;
entity moore_LTP_fsm1 is
port (
clk: in STD_LOGIC;
L: in STD_LOGIC;
rst: in STD_LOGIC;
P: out STD_LOGIC);
end moore_LTP_fsm1;
architecture moore_LTP_fsm1_arch of moore_LTP_fsm1 is
-- SYMBOLIC ENCODED state machine: Sreg0
type Sreg0_type is (
S1, S2, S3
);
-- attribute enum_encoding of Sreg0_type: type is ... -- enum_encoding attribute is not supported for symbolic encoding
signal Sreg0, NextState_Sreg0: Sreg0_type;
-- Declarations of pre-registered internal signals
signal int_P, next_P: STD_LOGIC;
begin
-- concurrent signals assignments
-- Diagram ACTION
----------------------------------------------------------------------
-- Machine: Sreg0
----------------------------------------------------------------------
------------------------------------
-- Next State Logic (combinatorial)
------------------------------------
Sreg0_NextState: process (int_P, L, Sreg0)
begin
NextState_Sreg0 <= Sreg0;
-- Set default values for outputs and signals
next_P <= int_P;
case Sreg0 is
when S1 =>
next_P <= '0';
if L='1' then
NextState_Sreg0 <= S2;
elsif L='0' then
NextState_Sreg0 <= S1;
end if;
when S2 =>
next_P <= '1';
if L='0' then
NextState_Sreg0 <= S1;
elsif L='1' then
NextState_Sreg0 <= S3;
end if;
when S3 =>
next_P <= '0';
if L='0' then
NextState_Sreg0 <= S1;
elsif L='1' then
NextState_Sreg0 <= S3;
end if;
--vhdl_cover_off
when others =>
null;
--vhdl_cover_on
end case;
end process;
------------------------------------
-- Current State Logic (sequential)
------------------------------------
Sreg0_CurrentState: process (clk)
begin
if clk'event and clk = '1' then
if rst='1' then
Sreg0 <= S1;
else
Sreg0 <= NextState_Sreg0;
end if;
end if;
end process;
------------------------------------
-- Registered Outputs Logic
------------------------------------
Sreg0_RegOutput: process (clk)
begin
if clk'event and clk = '1' then
if rst='1' then
int_P <= '0';
else
int_P <= next_P;
end if;
end if;
end process;
-- Copy temporary signals to target output ports
P <= int_P;
end moore_LTP_fsm1_arch;

code is given below for mealy fsm


library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_arith.all;
use IEEE.std_logic_unsigned.all;
use IEEE.std_logic_signed.all;
entity mealy_LTP_fsm1 is
port (
clk: in STD_LOGIC;
L: in STD_LOGIC;
rst: in STD_LOGIC;
P: out STD_LOGIC);
end mealy_LTP_fsm1;
architecture mealy_LTP_fsm1_arch of mealy_LTP_fsm1 is
-- SYMBOLIC ENCODED state machine: Sreg0
type Sreg0_type is (
S3, S4
);
-- attribute enum_encoding of Sreg0_type: type is ... -- enum_encoding attribute is not supported for symbolic encoding
signal Sreg0: Sreg0_type;
begin
-- concurrent signals assignments
-- Diagram ACTION
----------------------------------------------------------------------
-- Machine: Sreg0
----------------------------------------------------------------------
Sreg0_machine: process (clk)
begin
if clk'event and clk = '1' then
if rst='1' then
Sreg0 <= S3;
-- Set default values for outputs, signals and variables
-- ...
P <= '0'; else -- Set default values for outputs, signals and variables -- ... case Sreg0 is when S3 =>
P <= '0';
if L='1' then
Sreg0 <= S4;
P <= '1';
elsif L='0' then
Sreg0 <= S3; end if; when S4 =>
P <= '0';
if L='1' then
Sreg0 <= S4;
elsif L='0' then
Sreg0 <= S3;
P <= '0'; end if; --vhdl_cover_off when others =>
null;
--vhdl_cover_on
end case;
end if;
end if;
end process;
end mealy_LTP_fsm1_arch;

Here i took the fsm code of moore m/c and mealy m/c and try to get the rtl from dc synopsys and rc complier from cadence, for check how these tool maps the code into better rtl. The snaps from dc and rc compiler for moore and mealy sequentially.

It is dc generated rtl for moore fsm, looks lots of cell are there, from cell report it is around 15 cells, if you remeber the manual map design for the same tooks only 2 flops and 2 gates for ref i shown below.

its critical path, from dc tool itself.

now from cadence tool rtl comes as similar as this, take a look

but it took less number of cells, only 14 , here looks cadence mapping in better way.

Now same for mealy, what i got is as below.

it shows the critical path, from rtl schematic number of cells are 7

from rc compiler , total cells are 5, here also cadence is little better rtl mapper,

one might wondering, tcl script or technology i may set wrong which result in diff cell number, but i used same technology for all rtl transfer and same hdl code, with all proper setting of optimization. hope you get what i mean. Please do comment, like. we will bring similar articles for you.

 

 

By admin

83 thoughts on “Mealy Moore finite state machine RTL to Gate level conversion and comparison”
  1. I was curious if you ever thought of changing the layout of your website? Its very well written; I love what youve got to say. But maybe you could a little more in the way of content so people could connect with it better. Youve got an awful lot of text for only having one or 2 pictures. Maybe you could space it out better?

  2. Have you ever considered creating an e-book or guest authoring on other websites? I have a blog centered on the same topics you discuss and would love to have you share some stories/information. I know my readers would value your work. If you’re even remotely interested, feel free to shoot me an email.

  3. You really make it seem so easy together with your presentation but I find this topic to be actually something which I believe I would never understand. It seems too complex and extremely broad for me. I am having a look forward on your subsequent put up, I¦ll try to get the cling of it!

  4. Does your blog have a contact page? I’m having a tough time locating it
    but, I’d like to send you an email. I’ve got some creative ideas for your blog you might be interested in hearing.
    Either way, great site and I look forward to seeing it improve over
    time.

    my homepage; vpn coupon 2024

  5. Great goods from you, man. I have understand your stuff previous to and you are just too
    excellent. I really like what you have acquired here, certainly like what you’re saying and the way in which
    you say it. You make it entertaining and you still take care of
    to keep it sensible. I cant wait to read far more
    from you. This is really a wonderful site.

    Here is my web blog – vpn coupon 2024

  6. you’re really a good webmaster. The web site loading speed is amazing. It seems that you’re doing any unique trick. In addition, The contents are masterpiece. you have done a magnificent job on this topic!

  7. Excellent read, I just passed this onto a friend who was doing a little research on that. And he just bought me lunch because I found it for him smile Therefore let me rephrase that: Thank you for lunch! “Never let inexperience get in the way of ambition.” by Terry Josephson.

  8. Thanx for the effort, keep up the good work Great work, I am going to start a small Blog Engine course work using your site I hope you enjoy blogging with the popular BlogEngine.net.Thethoughts you express are really awesome. Hope you will right some more posts.

  9. I have learn a few just right stuff here. Definitely value bookmarking for revisiting. I surprise how a lot effort you put to create any such wonderful informative web site.

  10. Those are yours alright! . We at least need to get these people stealing images to start blogging! They probably just did a image search and grabbed them. They look good though!

  11. Undeniably believe that that you stated. Your favourite reason appeared to be at the web the simplest thing to bear in mind of. I say to you, I definitely get irked even as other folks consider issues that they plainly don’t understand about. You managed to hit the nail upon the top and outlined out the entire thing without having side-effects , people can take a signal. Will probably be back to get more. Thanks

  12. obviously like your web site but you have to test the spelling on several of your posts. Several of them are rife with spelling problems and I to find it very bothersome to inform the reality on the other hand I will surely come back again.

  13. Attractive component of content. I just stumbled upon your site and in accession capital to claim that I get in fact enjoyed account your weblog posts. Any way I’ll be subscribing on your feeds or even I fulfillment you get right of entry to persistently quickly.

  14. Thank you a lot for sharing this with all of us you actually realize what you are speaking about! Bookmarked. Please also visit my website =). We will have a link alternate arrangement among us!

  15. Normally I don’t read post on blogs, but I wish to say that this write-up very forced me to try and do so! Your writing style has been amazed me. Thanks, quite nice article.

  16. I just could not go away your website prior to suggesting that I extremely enjoyed the usual info an individual provide on your visitors? Is going to be back incessantly to investigate cross-check new posts.

  17. My husband and i got relieved Jordan managed to carry out his reports by way of the ideas he made in your web page. It is now and again perplexing to just possibly be freely giving secrets and techniques that most people might have been selling. We grasp we have the blog owner to be grateful to for this. The illustrations you’ve made, the easy website menu, the friendships you can make it easier to promote – it’s got all terrific, and it’s leading our son in addition to the family know that the article is pleasurable, and that is exceptionally fundamental. Thank you for all the pieces!

  18. hello!,I like your writing very so much! share we keep in touch extra about your post on AOL? I need a specialist in this area to solve my problem. May be that’s you! Looking forward to see you.

  19. Fantastic goods from you, man. I have understand your stuff previous to and you are just extremely great. I actually like what you’ve acquired here, really like what you’re saying and the way in which you say it. You make it enjoyable and you still care for to keep it wise. I cant wait to read far more from you. This is actually a great site.

  20. I like the valuable information you provide in your articles. I will bookmark your blog and check again here frequently. I am quite certain I will learn many new stuff right here! Good luck for the next!

  21. I am not sure where you’re getting your information, but great topic. I needs to spend some time learning more or understanding more. Thanks for great information I was looking for this information for my mission.

  22. Spot on with this write-up, I truly assume this web site wants far more consideration. I’ll most likely be again to read far more, thanks for that info.

  23. I?¦m no longer positive where you are getting your information, however great topic. I needs to spend some time finding out more or figuring out more. Thank you for excellent info I used to be looking for this info for my mission.

  24. I do agree with all the ideas you have presented in your post. They’re very convincing and will definitely work. Still, the posts are very short for starters. Could you please extend them a little from next time? Thanks for the post.

  25. I was more than happy to find this internet-site.I wanted to thanks for your time for this wonderful read!! I positively enjoying each little bit of it and I’ve you bookmarked to take a look at new stuff you weblog post.

  26. I am so happy to read this. This is the type of manual that needs to be given and not the random misinformation that is at the other blogs. Appreciate your sharing this best doc.

  27. An interesting topic and I’m glad to come across your page where I found some helpful insights. Check out my website ZQ3 too, if you need additional resources about Airport Transfer.

  28. Keep up the fantastic work! Kalorifer Sobası odun, kömür, pelet gibi yakıtlarla çalışan ve ısıtma işlevi gören bir soba türüdür. Kalorifer Sobası içindeki yakıtın yanmasıyla oluşan ısıyı doğrudan çevresine yayar ve aynı zamanda suyun ısınmasını sağlar.

  29. Keep up the fantastic work! Kalorifer Sobası odun, kömür, pelet gibi yakıtlarla çalışan ve ısıtma işlevi gören bir soba türüdür. Kalorifer Sobası içindeki yakıtın yanmasıyla oluşan ısıyı doğrudan çevresine yayar ve aynı zamanda suyun ısınmasını sağlar.

Leave a Reply

Your email address will not be published. Required fields are marked *