Jump to content
    

Снова вопросы начинающего... VErilog

да че там смотреть та ?

параметрированный цикл внутри машины состояний

переписал в лоб верилог-2001..квартус 7.2сп1 сьел такое и даже что то соответствующие показывает в ртл вьювере

module test (
    ClkDivSwitch,
    Reset,
    NeedToTr,BusGrant_p,TransDone_p,TransReady);
    
    
    
    parameter    Trans_num=20; 
    parameter    IdleSt=1'b0;
    parameter    TransmitSt=1'b1;
    
    input    ClkDivSwitch,Reset,NeedToTr;
    input[Trans_num-1:0]BusGrant_p;
    output reg[Trans_num-1:0]TransDone_p;
    
    reg  SregTrBlockStMash_p;
    output reg    TransReady;
    integer i;
    
    
    always@(posedge ClkDivSwitch)
        if (Reset )
            begin
                TransReady <= 0;
                SregTrBlockStMash_p <= IdleSt;
            end
        else
            case(SregTrBlockStMash_p)
                IdleSt:                                                                   
                    begin                                                               
                        TransReady <= 0;                                               
                        TransDone_p <= 0;                                               
                        for(i=0;i<Trans_num;i=i+1)                                          
                            begin                                                          
                                if(NeedToTr && BusGrant_p[i]==1)                                
                                    begin                                                  
                                        TransReady <= 1;                                  
                                        SregTrBlockStMash_p <= TransmitSt;               
                                    end
                            end
                    end
                
                TransmitSt:
                    begin
                        for(i=0;i<Trans_num;i=i+1)
                            begin
                                if(!NeedToTr)
                                    begin
                                        if(BusGrant_p[i])
                                            TransDone_p[i]<=1;
                                        else
                                            SregTrBlockStMash_p <= IdleSt;    
                                    end
                            end
                    end
            endcase
    
endmodule

Share this post


Link to post
Share on other sites

:( вопрос: какой синтезатор Вы используете ? Квартусский ?

 

переписал в лоб верилог-2001..квартус 7.2сп1 сьел такое и даже что то соответствующие показывает в ртл вьювере

module test (
    ClkDivSwitch,
    Reset,
    NeedToTr,BusGrant_p,TransDone_p,TransReady);
    
    
    
    parameter    Trans_num=20; 
    parameter    IdleSt=1'b0;
    parameter    TransmitSt=1'b1;
    
    input    ClkDivSwitch,Reset,NeedToTr;
    input[Trans_num-1:0]BusGrant_p;
    output reg[Trans_num-1:0]TransDone_p;
    
    reg  SregTrBlockStMash_p;
    output reg    TransReady;
    integer i;
    
    
    always@(posedge ClkDivSwitch)
        if (Reset )
            begin
                TransReady <= 0;
                SregTrBlockStMash_p <= IdleSt;
            end
        else
            case(SregTrBlockStMash_p)
                IdleSt:                                                                   
                    begin                                                               
                        TransReady <= 0;                                               
                        TransDone_p <= 0;                                               
                        for(i=0;i<Trans_num;i=i+1)                                          
                            begin                                                          
                                if(NeedToTr && BusGrant_p[i]==1)                                
                                    begin                                                  
                                        TransReady <= 1;                                  
                                        SregTrBlockStMash_p <= TransmitSt;               
                                    end
                            end
                    end
                
                TransmitSt:
                    begin
                        for(i=0;i<Trans_num;i=i+1)
                            begin
                                if(!NeedToTr)
                                    begin
                                        if(BusGrant_p[i])
                                            TransDone_p[i]<=1;
                                        else
                                            SregTrBlockStMash_p <= IdleSt;    
                                    end
                            end
                    end
            endcase
    
endmodule

Share this post


Link to post
Share on other sites

:( вопрос: какой синтезатор Вы используете ? Квартусский ?

 

переписал в лоб верилог-2001..квартус 7.2сп1 сьел такое и даже что то соответствующие показывает в ртл вьювере

 

не симплифай и не пресижн :)

Share this post


Link to post
Share on other sites

переписал в лоб верилог-2001..квартус 7.2сп1 сьел такое и даже что то соответствующие показывает в ртл вьювере

не симплифай и не пресижн :)

опять загадками говорите :lol:

Share this post


Link to post
Share on other sites

ну я Вас поздравляю. Мне не так повезло... меня не устраивает третьесортный синтез, во первых, а во вторых он у меня не заработает.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...