Skip to content

RegSysExSRAMOutputQueues

Adam edited this page Apr 10, 2012 · 2 revisions

!! SRAM output queues configuration file

Register system reference

(Current as of 5 Apr, 2010.)

%CODE{lang="xml" el="textarea"}%

<nf:module xmlns:nf="http://www.NetFPGA.org/NF2_register_system" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.NetFPGA.org/NF2_register_system NF2_register_system.xsd "> &lt;nf:name&gt;output_queues&lt;/nf:name&gt; &lt;nf:prefix&gt;oq&lt;/nf:prefix&gt; &lt;nf:location&gt;udp&lt;/nf:location&gt; &lt;nf:description&gt;SRAM&#45;based output queue using round&#45;robin removal&lt;/nf:description&gt; &lt;nf:blocksize&gt;4k&lt;/nf:blocksize&gt; &lt;nf:registers&gt; &amp;lt;nf:register_group&amp;gt; &amp;amp;lt;nf:name&amp;amp;gt;queue&amp;amp;lt;/nf:name&amp;amp;gt; &amp;amp;lt;nf:instances&amp;amp;gt;:NUM_OUTPUT_QUEUES&amp;amp;lt;/nf:instances&amp;amp;gt; &amp;amp;lt;nf:register&amp;amp;gt; &amp;amp;amp;lt;nf:name&amp;amp;amp;gt;ctrl&amp;amp;amp;lt;/nf:name&amp;amp;amp;gt; &amp;amp;amp;lt;nf:description&amp;amp;amp;gt;Control register&amp;amp;amp;lt;/nf:description&amp;amp;amp;gt; &amp;amp;amp;lt;nf:type&amp;amp;amp;gt;oq_control&amp;amp;amp;lt;/nf:type&amp;amp;amp;gt; &amp;amp;lt;/nf:register&amp;amp;gt; &amp;amp;lt;nf:register&amp;amp;gt; &amp;amp;amp;lt;nf:name&amp;amp;amp;gt;num_pkt_bytes_stored&amp;amp;amp;lt;/nf:name&amp;amp;amp;gt; &amp;amp;amp;lt;nf:description&amp;amp;amp;gt;Number of packet bytes stored&amp;amp;amp;lt;/nf:description&amp;amp;amp;gt; &amp;amp;amp;lt;nf:type&amp;amp;amp;gt;sram_byte_cnt&amp;amp;amp;lt;/nf:type&amp;amp;amp;gt; &amp;amp;lt;/nf:register&amp;amp;gt; &amp;amp;lt;nf:register&amp;amp;gt; &amp;amp;amp;lt;nf:name&amp;amp;amp;gt;num_overhead_bytes_stored&amp;amp;amp;lt;/nf:name&amp;amp;amp;gt; &amp;amp;amp;lt;nf:description&amp;amp;amp;gt;Number of overhead (control) bytes stored&amp;amp;amp;lt;/nf:description&amp;amp;amp;gt; &amp;amp;amp;lt;nf:type&amp;amp;amp;gt;sram_byte_cnt&amp;amp;amp;lt;/nf:type&amp;amp;amp;gt; &amp;amp;lt;/nf:register&amp;amp;gt; &amp;amp;lt;nf:register&amp;amp;gt; &amp;amp;amp;lt;nf:name&amp;amp;amp;gt;num_pkt_bytes_removed&amp;amp;amp;lt;/nf:name&amp;amp;amp;gt; &amp;amp;amp;lt;nf:description&amp;amp;amp;gt;Number of packet bytes removed&amp;amp;amp;lt;/nf:description&amp;amp;amp;gt; &amp;amp;amp;lt;nf:type&amp;amp;amp;gt;sram_byte_cnt&amp;amp;amp;lt;/nf:type&amp;amp;amp;gt; &amp;amp;lt;/nf:register&amp;amp;gt; &amp;amp;lt;nf:register&amp;amp;gt; &amp;amp;amp;lt;nf:name&amp;amp;amp;gt;num_overhead_bytes_removed&amp;amp;amp;lt;/nf:name&amp;amp;amp;gt; &amp;amp;amp;lt;nf:description&amp;amp;amp;gt;Number of overhead (control) bytes removed&amp;amp;amp;lt;/nf:description&amp;amp;amp;gt; &amp;amp;amp;lt;nf:type&amp;amp;amp;gt;sram_byte_cnt&amp;amp;amp;lt;/nf:type&amp;amp;amp;gt; &amp;amp;lt;/nf:register&amp;amp;gt; &amp;amp;lt;nf:register&amp;amp;gt; &amp;amp;amp;lt;nf:name&amp;amp;amp;gt;num_pkts_stored&amp;amp;amp;lt;/nf:name&amp;amp;amp;gt; &amp;amp;amp;lt;nf:description&amp;amp;amp;gt;Number of packets stored&amp;amp;amp;lt;/nf:description&amp;amp;amp;gt; &amp;amp;amp;lt;nf:type&amp;amp;amp;gt;sram_pkt_cnt&amp;amp;amp;lt;/nf:type&amp;amp;amp;gt; &amp;amp;lt;/nf:register&amp;amp;gt; &amp;amp;lt;nf:register&amp;amp;gt; &amp;amp;amp;lt;nf:name&amp;amp;amp;gt;num_pkts_dropped&amp;amp;amp;lt;/nf:name&amp;amp;amp;gt; &amp;amp;amp;lt;nf:description&amp;amp;amp;gt;Number of packets dropped&amp;amp;amp;lt;/nf:description&amp;amp;amp;gt; &amp;amp;amp;lt;nf:type&amp;amp;amp;gt;sram_pkt_cnt&amp;amp;amp;lt;/nf:type&amp;amp;amp;gt; &amp;amp;lt;/nf:register&amp;amp;gt; &amp;amp;lt;nf:register&amp;amp;gt; &amp;amp;amp;lt;nf:name&amp;amp;amp;gt;num_pkts_removed&amp;amp;amp;lt;/nf:name&amp;amp;amp;gt; &amp;amp;amp;lt;nf:description&amp;amp;amp;gt;Number of packets removed&amp;amp;amp;lt;/nf:description&amp;amp;amp;gt; &amp;amp;amp;lt;nf:type&amp;amp;amp;gt;sram_pkt_cnt&amp;amp;amp;lt;/nf:type&amp;amp;amp;gt; &amp;amp;lt;/nf:register&amp;amp;gt; &amp;amp;lt;nf:register&amp;amp;gt; &amp;amp;amp;lt;nf:name&amp;amp;amp;gt;addr_lo&amp;amp;amp;lt;/nf:name&amp;amp;amp;gt; &amp;amp;amp;lt;nf:description&amp;amp;amp;gt;Queue low address&amp;amp;amp;lt;/nf:description&amp;amp;amp;gt; &amp;amp;amp;lt;nf:type&amp;amp;amp;gt;sram_addr&amp;amp;amp;lt;/nf:type&amp;amp;amp;gt; &amp;amp;lt;/nf:register&amp;amp;gt; &amp;amp;lt;nf:register&amp;amp;gt; &amp;amp;amp;lt;nf:name&amp;amp;amp;gt;addr_hi&amp;amp;amp;lt;/nf:name&amp;amp;amp;gt; &amp;amp;amp;lt;nf:description&amp;amp;amp;gt;Queue high address&amp;amp;amp;lt;/nf:description&amp;amp;amp;gt; &amp;amp;amp;lt;nf:type&amp;amp;amp;gt;sram_addr&amp;amp;amp;lt;/nf:type&amp;amp;amp;gt; &amp;amp;lt;/nf:register&amp;amp;gt; &amp;amp;lt;nf:register&amp;amp;gt; &amp;amp;amp;lt;nf:name&amp;amp;amp;gt;rd_addr&amp;amp;amp;lt;/nf:name&amp;amp;amp;gt; &amp;amp;amp;lt;nf:description&amp;amp;amp;gt;Queue read address&amp;amp;amp;lt;/nf:description&amp;amp;amp;gt; &amp;amp;amp;lt;nf:type&amp;amp;amp;gt;sram_addr&amp;amp;amp;lt;/nf:type&amp;amp;amp;gt; &amp;amp;lt;/nf:register&amp;amp;gt; &amp;amp;lt;nf:register&amp;amp;gt; &amp;amp;amp;lt;nf:name&amp;amp;amp;gt;wr_addr&amp;amp;amp;lt;/nf:name&amp;amp;amp;gt; &amp;amp;amp;lt;nf:description&amp;amp;amp;gt;Queue write address&amp;amp;amp;lt;/nf:description&amp;amp;amp;gt; &amp;amp;amp;lt;nf:type&amp;amp;amp;gt;sram_addr&amp;amp;amp;lt;/nf:type&amp;amp;amp;gt; &amp;amp;lt;/nf:register&amp;amp;gt; &amp;amp;lt;nf:register&amp;amp;gt; &amp;amp;amp;lt;nf:name&amp;amp;amp;gt;num_pkts_in_q&amp;amp;amp;lt;/nf:name&amp;amp;amp;gt; &amp;amp;amp;lt;nf:description&amp;amp;amp;gt;Number of packets in the queue&amp;amp;amp;lt;/nf:description&amp;amp;amp;gt; &amp;amp;amp;lt;nf:type&amp;amp;amp;gt;sram_pkt_cnt&amp;amp;amp;lt;/nf:type&amp;amp;amp;gt; &amp;amp;lt;/nf:register&amp;amp;gt; &amp;amp;lt;nf:register&amp;amp;gt; &amp;amp;amp;lt;nf:name&amp;amp;amp;gt;max_pkts_in_q&amp;amp;amp;lt;/nf:name&amp;amp;amp;gt; &amp;amp;amp;lt;nf:description&amp;amp;amp;gt;Maximum number of packets allowed in queue&amp;amp;amp;lt;/nf:description&amp;amp;amp;gt; &amp;amp;amp;lt;nf:type&amp;amp;amp;gt;sram_pkt_cnt&amp;amp;amp;lt;/nf:type&amp;amp;amp;gt; &amp;amp;lt;/nf:register&amp;amp;gt; &amp;amp;lt;nf:register&amp;amp;gt; &amp;amp;amp;lt;nf:name&amp;amp;amp;gt;num_words_in_q&amp;amp;amp;lt;/nf:name&amp;amp;amp;gt; &amp;amp;amp;lt;nf:description&amp;amp;amp;gt;Number of words in the queue&amp;amp;amp;lt;/nf:description&amp;amp;amp;gt; &amp;amp;amp;lt;nf:type&amp;amp;amp;gt;sram_word_cnt&amp;amp;amp;lt;/nf:type&amp;amp;amp;gt; &amp;amp;lt;/nf:register&amp;amp;gt; &amp;amp;lt;nf:register&amp;amp;gt; &amp;amp;amp;lt;nf:name&amp;amp;amp;gt;num_words_left&amp;amp;amp;lt;/nf:name&amp;amp;amp;gt; &amp;amp;amp;lt;nf:description&amp;amp;amp;gt;Number of words of space left&amp;amp;amp;lt;/nf:description&amp;amp;amp;gt; &amp;amp;amp;lt;nf:type&amp;amp;amp;gt;sram_word_cnt&amp;amp;amp;lt;/nf:type&amp;amp;amp;gt; &amp;amp;lt;/nf:register&amp;amp;gt; &amp;amp;lt;nf:register&amp;amp;gt; &amp;amp;amp;lt;nf:name&amp;amp;amp;gt;full_thresh&amp;amp;amp;lt;/nf:name&amp;amp;amp;gt; &amp;amp;amp;lt;nf:description&amp;amp;amp;gt;Full threshold (minimum number of words)&amp;amp;amp;lt;/nf:description&amp;amp;amp;gt; &amp;amp;amp;lt;nf:type&amp;amp;amp;gt;sram_word_cnt&amp;amp;amp;lt;/nf:type&amp;amp;amp;gt; &amp;amp;lt;/nf:register&amp;amp;gt; &amp;lt;/nf:register_group&amp;gt; &lt;/nf:registers&gt; &lt;nf:constants&gt; &amp;lt;nf:constant&amp;gt; &amp;amp;lt;nf:name&amp;amp;gt;:NUM_OUTPUT_QUEUES&amp;amp;lt;/nf:name&amp;amp;gt; &amp;amp;lt;nf:value&amp;amp;gt;8&amp;amp;lt;/nf:value&amp;amp;gt; &amp;lt;/nf:constant&amp;gt; &amp;lt;nf:constant&amp;gt; &amp;amp;lt;nf:name&amp;amp;gt;DEFAULT_MAX_PKTS&amp;amp;lt;/nf:name&amp;amp;gt; &amp;amp;lt;nf:width&amp;amp;gt;SRAM_PKT_CNT_WIDTH&amp;amp;lt;/nf:width&amp;amp;gt; &amp;amp;lt;nf:value&amp;amp;gt;0xffffffff&amp;amp;lt;/nf:value&amp;amp;gt; &amp;lt;/nf:constant&amp;gt; &amp;lt;nf:constant&amp;gt; &amp;amp;lt;nf:name&amp;amp;gt;SRAM_PKT_CNT_WIDTH&amp;amp;lt;/nf:name&amp;amp;gt; &amp;amp;lt;nf:value&amp;amp;gt;:SRAM_ADDR_WIDTH&amp;amp;lt;/nf:value&amp;amp;gt; &amp;lt;/nf:constant&amp;gt; &amp;lt;nf:constant&amp;gt; &amp;amp;lt;nf:name&amp;amp;gt;SRAM_WORD_CNT_WIDTH&amp;amp;lt;/nf:name&amp;amp;gt; &amp;amp;lt;nf:value&amp;amp;gt;:SRAM_ADDR_WIDTH&amp;amp;lt;/nf:value&amp;amp;gt; &amp;lt;/nf:constant&amp;gt; &amp;lt;nf:constant&amp;gt; &amp;amp;lt;nf:name&amp;amp;gt;SRAM_BYTE_CNT_WIDTH&amp;amp;lt;/nf:name&amp;amp;gt; &amp;amp;lt;nf:value&amp;amp;gt;:SRAM_ADDR_WIDTH&amp;amp;lt;/nf:value&amp;amp;gt; &amp;lt;/nf:constant&amp;gt; &amp;lt;nf:constant&amp;gt; &amp;amp;lt;nf:name&amp;amp;gt;ENABLE_SEND_BIT_NUM&amp;amp;lt;/nf:name&amp;amp;gt; &amp;amp;lt;nf:value&amp;amp;gt;0&amp;amp;lt;/nf:value&amp;amp;gt; &amp;lt;/nf:constant&amp;gt; &amp;lt;nf:constant&amp;gt; &amp;amp;lt;nf:name&amp;amp;gt;INITIALIZE_OQ_BIT_NUM&amp;amp;lt;/nf:name&amp;amp;gt; &amp;amp;lt;nf:value&amp;amp;gt;1&amp;amp;lt;/nf:value&amp;amp;gt; &amp;lt;/nf:constant&amp;gt; &lt;/nf:constants&gt; &lt;nf:types&gt; &amp;lt;nf:type xsi:type=&amp;quot;nf:SimpleType&amp;quot;&amp;gt; &amp;amp;lt;nf:name&amp;amp;gt;sram_pkt_cnt&amp;amp;lt;/nf:name&amp;amp;gt; &amp;amp;lt;nf:width&amp;amp;gt;SRAM_PKT_CNT_WIDTH&amp;amp;lt;/nf:width&amp;amp;gt; &amp;lt;/nf:type&amp;gt; &amp;lt;nf:type xsi:type=&amp;quot;nf:SimpleType&amp;quot;&amp;gt; &amp;amp;lt;nf:name&amp;amp;gt;sram_word_cnt&amp;amp;lt;/nf:name&amp;amp;gt; &amp;amp;lt;nf:width&amp;amp;gt;SRAM_WORD_CNT_WIDTH&amp;amp;lt;/nf:width&amp;amp;gt; &amp;lt;/nf:type&amp;gt; &amp;lt;nf:type xsi:type=&amp;quot;nf:SimpleType&amp;quot;&amp;gt; &amp;amp;lt;nf:name&amp;amp;gt;sram_byte_cnt&amp;amp;lt;/nf:name&amp;amp;gt; &amp;amp;lt;nf:width&amp;amp;gt;SRAM_BYTE_CNT_WIDTH&amp;amp;lt;/nf:width&amp;amp;gt; &amp;lt;/nf:type&amp;gt; &amp;lt;nf:type xsi:type=&amp;quot;nf:SimpleType&amp;quot;&amp;gt; &amp;amp;lt;nf:name&amp;amp;gt;sram_addr&amp;amp;lt;/nf:name&amp;amp;gt; &amp;amp;lt;nf:width&amp;amp;gt;:SRAM_ADDR_WIDTH&amp;amp;lt;/nf:width&amp;amp;gt; &amp;lt;/nf:type&amp;gt; &amp;lt;nf:type xsi:type=&amp;quot;nf:SimpleType&amp;quot;&amp;gt; &amp;amp;lt;nf:name&amp;amp;gt;oq_control&amp;amp;lt;/nf:name&amp;amp;gt; &amp;amp;lt;nf:width&amp;amp;gt;2&amp;amp;lt;/nf:width&amp;amp;gt; &amp;amp;lt;nf:bitmask&amp;amp;gt; &amp;amp;amp;lt;nf:name&amp;amp;amp;gt;enable_send&amp;amp;amp;lt;/nf:name&amp;amp;amp;gt; &amp;amp;amp;lt;nf:pos&amp;amp;amp;gt;0&amp;amp;amp;lt;/nf:pos&amp;amp;amp;gt; &amp;amp;lt;/nf:bitmask&amp;amp;gt; &amp;amp;lt;nf:bitmask&amp;amp;gt; &amp;amp;amp;lt;nf:name&amp;amp;amp;gt;initialize_oq&amp;amp;amp;lt;/nf:name&amp;amp;amp;gt; &amp;amp;amp;lt;nf:pos&amp;amp;amp;gt;1&amp;amp;amp;lt;/nf:pos&amp;amp;amp;gt; &amp;amp;lt;/nf:bitmask&amp;amp;gt; &amp;lt;/nf:type&amp;gt; &lt;/nf:types&gt; </nf:module>

%ENDCODE%

Clone this wiki locally