<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-gb">
	<link rel="self" type="application/atom+xml" href="https://forum.eggheads.org/app.php/feed/topic/16840" />

	<title>egghelp/eggheads community</title>
	<subtitle>Discussion of eggdrop bots, shell accounts and tcl scripts.</subtitle>
	<link href="https://forum.eggheads.org/index.php" />
	<updated>2009-04-28T11:26:48-04:00</updated>

	<author><name><![CDATA[egghelp/eggheads community]]></name></author>
	<id>https://forum.eggheads.org/app.php/feed/topic/16840</id>

		<entry>
		<author><name><![CDATA[nml375]]></name></author>
		<updated>2009-04-28T11:26:48-04:00</updated>

		<published>2009-04-28T11:26:48-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=88604#p88604</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=88604#p88604"/>
		<title type="html"><![CDATA[HELP!!! Modelsim TCL Error **Error invalid command name &quo]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=88604#p88604"><![CDATA[
Probably caused by these lines:<div class="codebox"><p>Code: </p><pre><code>[write_i2c $random_device $register_ptr $cntrl_reg $byte_count][read_i2c $random_device $register_ptr $cntrl_reg $byte_count]</code></pre></div>Did you really intend to use the output from write_i2c or read_i2c as a new command?<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=8052">nml375</a> — Tue Apr 28, 2009 11:26 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[derrick_chi]]></name></author>
		<updated>2009-04-28T00:31:20-04:00</updated>

		<published>2009-04-28T00:31:20-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=88600#p88600</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=88600#p88600"/>
		<title type="html"><![CDATA[HELP!!! Modelsim TCL Error **Error invalid command name &quo]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=88600#p88600"><![CDATA[
Has anyone everseen this error **Error invalid command name "" before? I wrote a tcl script to test some hardware that I designed and when I run the script I get that error. I've pasted the error and the script in below, any help would be apprieciated, thanks. <br><br># ** Error: empty command name "" <br># Error in macro C:\Engineering_Projects\I2C\TCL Testbenches\i2c_testbench.tcl line 270 <br># empty command name "" <br># while executing <br># "[write_i2c $random_device $register_ptr $cntrl_reg $byte_count] " <br># ("while" body line 57) <br># invoked from within <br># "while {$tranaction_count &lt; 100 } { <br># <br># global wrdata_array <br># <br># if { [examine -bin I2C_LOCK] == "1" } { <br># <br># set random_device [myRand 0 3] <br># set dev..." <br><br><br><br><br><br><div class="codebox"><p>Code: </p><pre><code> do i2c_wave.do restart set UserTimeUnit ns force -freeze Master_CLK 1 0, 0 {10 ns} -r 20 force -deposit rst 1 force -deposit CLK_SPEED_SEL 0 force -deposit I2C_CLK_GEN_W 0 force -deposit DATA_TO_MASTER 00 force -deposit CONTROL_INPUT 0000 force -deposit i2c_cntrl_reg_w 0 force -deposit SDA 1 force -deposit I2C_READ 0 force -deposit I2C_WRITE 0 run 40 ns force -deposit rst 0 run 40 ns force -deposit CLK_SPEED_SEL 35 force -deposit I2C_CLK_GEN_W 1 run 20 ns force -deposit CLK_SPEED_SEL 0 force -deposit I2C_CLK_GEN_W 0 run 20 ns set slave_addressr A5 set slave_addressw A4 set eeprom_slave_addressr AB set eeprom_slave_addressw AA set verilog_slave_addressr 21 set verilog_slave_addressw 20 set german_slave_addressr C3 set german_slave_addressw C2 set i2cs_rx_slave_addressr 23 set i2cs_rx_slave_addressw 22 set read_adr_arry(0) $slave_addressr set read_adr_arry(1) $eeprom_slave_addressr set read_adr_arry(2) $german_slave_addressr set read_adr_arry(3) $i2cs_rx_slave_addressr set read_adr_arry(4) $verilog_slave_addressr set write_adr_arry(0) $slave_addressw set write_adr_arry(1) $eeprom_slave_addressw set write_adr_arry(2) $german_slave_addressw set write_adr_arry(3) $i2cs_rx_slave_addressw set write_adr_arry(4) $verilog_slave_addressw global wrdata_array set wrdata_array(0) 0 set instruction_array(0) 0 set instruction_array(1) 1 proc myRand { min max } { set maxFactor [expr [expr $max + 1] - $min] set value [expr int([expr rand() * 100])] set value [expr [expr $value % $maxFactor] + $min] return $value } proc myRand_hex { dec_min dec_max } { set hex_maxFactor [expr [expr $dec_max + 1] - $dec_min] set dec_value [expr int([expr rand() * 100])] set dec_value [expr [expr $dec_value % $hex_maxFactor] + $dec_min] set hex_value [format %02X $dec_value] return $hex_value } proc write_i2c { device registerptr cntrl_reg byte_count } { global wrdata_array while { [examine -dec I2C_BUSY] == 1 } { run 20 ns } force -deposit CONTROL_INPUT $cntrl_reg force -deposit i2c_cntrl_reg_w 1 run 20 ns force -deposit i2c_cntrl_reg_w 0 run 20 ns set write_count 0 set write_op "write to" set loop_count [expr $byte_count - 1] set loop_termination [expr $loop_count / 4] switch -exact -- $device { 0 { echo "The current transaction is a $byte_count byte write to the PCA955 slave starting at register $registerptr" } 1 { echo "The current transaction is a $byte_count byte write to the EEPROM slave starting at register $registerptr" } 2 { echo "The current transaction is a $byte_count byte write to the German slave starting at register $registerptr" } 3 { echo "The current transaction is a $byte_count byte write to the I2CS_RX slave starting at register $registerptr" } 4 { echo "The current transaction is a $byte_count byte write to the VERILOG slave starting at register $registerptr" } default { error "This $byte_count is not a known device address" } } while { $write_count &lt; $loop_termination } { if { [examine -dec I2C_BUSY] == 0 } { force -deposit CONTROL_INPUT $wrdata_array($write_count) force -deposit I2C_WRITE 1 run 20 ns force -deposit I2C_WRITE 0 run 20 ns incr write_count } else { force -deposit I2C_WRITE 0 run 20 ns } } force -deposit I2C_WRITE 0 run 20 ns } proc read_i2c { device registerptr cntrl_reg byte_count } { global wrdata_array while { [examine -dec I2C_BUSY] == 1 } {run 20 ns } force -deposit CONTROL_INPUT $cntrl_reg force -deposit i2c_cntrl_reg_w 1 run 20 ns force -deposit i2c_cntrl_reg_w 0 set read_count 0 set read_op "read from" switch -exact -- $device { 0 { echo "The current transaction is a $byte_count byte read from the PCA955 slave starting at register $registerptr" } 1 { echo "The current transaction is a $byte_count byte read from the EEPROM slave starting at register $registerptr" } 2 { echo "The current transaction is a $byte_count byte read from the German slave starting at register $registerptr" } 3 { echo "The current transaction is a $byte_count byte read from the I2CS_RX slave starting at register $registerptr" } 4 { echo "The current transaction is a $byte_count byte read from the VERILOG slave starting at register $registerptr" } default { error "This $byte_count is not a known device address" } } while { $read_count &lt;= [expr $byte_count / 4] } { if { [examine -dec I2C_DATA_RDY] == 1 } { force -deposit I2C_READ 1 run 20 ns force -deposit I2C_READ 0 run 20 ns if { [examine -hex DATA_FROM_SLAVE] != $wrdata_array($read_count) } { error "The data doesn't match, the data that was written was $wrdata_array($read_count) you got back [examine -hex DATA_FROM_SLAVE]" } else { echo "Read transaction successful" } incr read_count } else { force -deposit I2C_READ 0 run 20 ns } } force -deposit I2C_READ 0 run 20 ns } set tranaction_count 0 set write_count 0 set regcount 0 set pcslave_adr_count 0 set eepromslave_adr_count 0 set verilogslave_adr_count 0 set germanslave_adr_count 0 set i2cs_rx_adr_count 0 set hexcount [format %02X $regcount] while {$tranaction_count &lt; 100 } { global wrdata_array if { [examine -bin I2C_LOCK] == "1" } { set random_device [myRand 0 3] set device_address $write_adr_arry($random_device) switch -exact -- $random_device { 0 { set byte_count [myRand 3 4] } 1 { set byte_count [myRand 3 2047] } 2 { set byte_count [myRand 3 4] } 3 { set byte_count [myRand 3 10] } 4 { set byte_count [myRand 3 4] } default { error } } set timeout_value [format %1X 15] set cntrl_reg $device_address append cntrl_reg $timeout_value append cntrl_reg [format %1X $byte_count] set array_byte_count [expr $byte_count - 1] set array_sub_count 0 set array_index 0 switch -exact -- $random_device { 0 { set register_ptr [myRand_hex 2 3] } 1 { set register_ptr [myRand_hex 2 2047] } 2 { set register_ptr [myRand_hex 2 3] } 3 { set register_ptr 00 } 4 { set register_ptr [myRand_hex 2 15] } default { error } } set wrdata_array($array_index) $register_ptr while { $array_byte_count != 0 } { if { $array_sub_count == 3 } { incr array_index } else { append wrdata_array($array_index) [myRand_hex 1 255] set array_byte_count [expr $array_byte_count - 1] incr array_sub_count } } [write_i2c $random_device $register_ptr $cntrl_reg $byte_count] [read_i2c $random_device $register_ptr $cntrl_reg $byte_count] incr tranaction_count run 20 ns } run 200 ns } </code></pre></div><p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=10559">derrick_chi</a> — Tue Apr 28, 2009 12:31 am</p><hr />
]]></content>
	</entry>
	</feed>
