OpenCores
URL https://opencores.org/ocsvn/versatile_counter/versatile_counter/trunk

Subversion Repositories versatile_counter

[/] [versatile_counter/] [trunk/] [rtl/] [verilog/] [versatile_counter_generator.php] - Diff between revs 24 and 25

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 24 Rev 25
Line 95... Line 95...
if ($inputs['clear']=="1") { echo "   input " "clear;" PHP_EOL; }
if ($inputs['clear']=="1") { echo "   input " "clear;" PHP_EOL; }
if ($inputs['set']=="1")   { echo "   input " "set;" PHP_EOL; }
if ($inputs['set']=="1")   { echo "   input " "set;" PHP_EOL; }
if ($inputs['cke']=="1")   { echo "   input " "cke;" PHP_EOL; }
if ($inputs['cke']=="1")   { echo "   input " "cke;" PHP_EOL; }
if ($inputs['rew']=="1")   { echo "   input " "rew;" PHP_EOL; }
if ($inputs['rew']=="1")   { echo "   input " "rew;" PHP_EOL; }
 
 
if ($outputs['q']=="1")      { echo "   output [length:1] q;" PHP_EOL; }
if ($counter['type']=="GRAY") {
 
    if ($outputs['q']=="1")      { echo "   output reg [length:1] q;" PHP_EOL; }    
 
} else {
 
    if ($outputs['q']=="1")      { echo "   output [length:1] q;" PHP_EOL; }
 
}
if ($outputs['q_bin']=="1")  { echo "   output [length:1] q_bin;" PHP_EOL; }
if ($outputs['q_bin']=="1")  { echo "   output [length:1] q_bin;" PHP_EOL; }
if ($outputs['z']=="1")      { echo "   output z;" PHP_EOL; }
if ($outputs['z']=="1")      { echo "   output z;" PHP_EOL; }
if ($outputs['zq']=="1")     { echo "   output reg zq;" PHP_EOL; }
if ($outputs['zq']=="1")     { echo "   output reg zq;" PHP_EOL; }
if ($outputs['level1']=="1") { echo "   output reg level1;" PHP_EOL; }
if ($outputs['level1']=="1") { echo "   output reg level1;" PHP_EOL; }
if ($outputs['level2']=="1") { echo "   output reg level2;" PHP_EOL; }
if ($outputs['level2']=="1") { echo "   output reg level2;" PHP_EOL; }
Line 174... Line 178...
 
 
if ($inputs['rew']!=1) { echo "   assign q_next = "; } else { echo "   assign q_next_fw  = "; }
if ($inputs['rew']!=1) { echo "   assign q_next = "; } else { echo "   assign q_next_fw  = "; }
if ($inputs['clear']==1)  { echo " clear ? {length{1'b0}} :";}
if ($inputs['clear']==1)  { echo " clear ? {length{1'b0}} :";}
if ($inputs['set']==1)    { echo " set ? set_value :";}
if ($inputs['set']==1)    { echo " set ? set_value :";}
if ($wrap['wrap']==1)     { echo "(qi == wrap_value) ? {length{1'b0}} :";}
if ($wrap['wrap']==1)     { echo "(qi == wrap_value) ? {length{1'b0}} :";}
if ($counter['type']=="LFSR") { echo "{qi[length-1:1],lfsr_fb};"; } else { echo "qi + length'd1;"; }
if ($counter['type']=="LFSR") { echo "{qi[length-1:1],lfsr_fb};"; } else { echo "qi + 1;"; }
echo PHP_EOL;
echo PHP_EOL;
 
 
if ($inputs['rew']) {
if ($inputs['rew']) {
    if ($counter['type']=="LFSR") {
    if ($counter['type']=="LFSR") {
            echo "   always @ (qi)" PHP_EOL;
            echo "   always @ (qi)" PHP_EOL;
Line 230... Line 234...
    }
    }
    echo "   assign q_next_rew = ";
    echo "   assign q_next_rew = ";
    if ($inputs['clear']==1)  { echo " clear ? clear_value :";}
    if ($inputs['clear']==1)  { echo " clear ? clear_value :";}
    if ($inputs['set']==1)    { echo " set ? set_value :";}
    if ($inputs['set']==1)    { echo " set ? set_value :";}
    if ($wrap['wrap']==1)     { echo "(qi == wrap_value) ? {length{1'b0}} :";}
    if ($wrap['wrap']==1)     { echo "(qi == wrap_value) ? {length{1'b0}} :";}
    if ($counter['type']=="LFSR") { echo "{lfsr_fb_rew,qi[length:2]};"; } else { echo "qi - length'd1;"; }
    if ($counter['type']=="LFSR") { echo "{lfsr_fb_rew,qi[length:2]};"; } else { echo "qi - 1;"; }
    echo PHP_EOL;
    echo PHP_EOL;
    echo "   assign q_next = rew ? q_next_rew : q_next_fw;" PHP_EOL;
    echo "   assign q_next = rew ? q_next_rew : q_next_fw;" PHP_EOL;
 
 
echo "
echo "
   always @ (posedge clk or posedge rst)
   always @ (posedge clk or posedge rst)
     if (rst)
     if (rst)
       qi <= {length{1'b0}};
       qi <= {length{1'b0}};
     else" PHP_EOL;
     else" PHP_EOL;
if ($inputs['cke']) { echo "     if (cke)" PHP_EOL;}
if ($inputs['cke']) { echo "     if (cke)" PHP_EOL;}
echo "      qi <= q_next;" PHP_EOL;
echo "       qi <= q_next;" PHP_EOL;
echo PHP_EOL;
echo PHP_EOL;
 
 
if ($outputs['q']) {
if ($outputs['q']) {
    if ($counter['type'] == "GRAY" or $counter['type'] == "gray") {
    if ($counter['type'] == "GRAY" or $counter['type'] == "gray") {
        echo "always @ (posedge clk or posedge rst)
        echo "always @ (posedge clk or posedge rst)
     if (rst)
     if (rst)
       q <= ;
       q <= (q_next>>1) ^ q_next;
     else";
     else" PHP_EOL;
    if ($inputs['cke']) { echo "   if (cke)" PHP_EOL; }
        if ($inputs['cke']) { echo "       if (cke)" PHP_EOL; }
 
        echo "         q <= (q_next>>1) ^ q_next;" PHP_EOL;
    } else {
    } else {
        echo "   assign q = qi;" PHP_EOL;
        echo "   assign q = qi;" PHP_EOL;
    }
    }
}
}
echo PHP_EOL;
echo PHP_EOL;

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.