Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
13 years ago

Implementing firmware version

I am trying to make a code that can store firmware versions from a .txt file, I tried doing it with a ROM initialized with a .mif file, but it's not working. I have a Cyclone III that sends that info to a microcontroller and then to a HMI (human machine interface) screen so I can see the FPGA's firmware version. It's all in VHDL, but I posted this issue a few days ago and I got this reply (that seemed more appropriate, but I don't know how to do it):

--- Quote Start ---

What you are attempting I have done in the past to store hardware versions and software build numbers but I had Nios II reading out the values.

Perhaps you can skip using the ROM and just 'include a value defined in a verilog include file that is generated by your build system. In the include file you could just have something like 'define VERSION_NUMBER <machine generated version number> and in your hardware design refer to that value.

--- Quote End ---

But I've never done anything in verilog, only VHDL. I searched that out but still can't make much of it.

If anyone could possibly post a code on how that's done, it would really help me, been trying to do this for long now.

22 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Hi Guys,

    I am a newbie in tcl-scripting.

    I have the same problem. I am trying to use the script provided by Altera

    altera.com/support/support-resources/design-examples/design-software/tcl/tcl-svn-revision.html

    
    if {  } {
        post_message -type critical_warning "Couldn't run command to get
            revision number. $msg"
    } else {
        if { -1 == $done } {
            post_message -type critical_warning "Timeout getting revision number."
        } elseif {  } {
            post_message -type critical_warning 
                "Couldn't find revision number in output of svn info $rootPath."
        }
    }

    I always get the following warning.

    Critical Warning: Couldn't run command to get revision number. couldn't execute "svn": no such file or directory

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Ok, I have the solution !!! :cool:

    In the procedure the variable "SVN" was unknown.

    
    #  global SVN Variables
    set Glob(SVNDIR) ../MySvnPath/bin/svn.exe
    set Glob(SVN) "$Glob(SVNDIR)"
    ...
    proc get_subversion_revision { file_name } {
        global done
        global Glob
       #  The maximum number of seconds to wait for the svn info
       #  command to complete
        set timeout_seconds 30
       #  The svn info command with filename that is run
        set cmd "$Glob(SVN) info ${file_name}"
       #  Attempt to get the version information.
       #  If the command can't be run, return an error.
       #  Otherwise set up a file event to process the command output.
        if {  } {
            return -code error $input