aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTrung N Tran <trung.tran@ettus.com>2018-03-08 13:42:44 -0800
committerMartin Braun <martin.braun@ettus.com>2018-03-13 13:43:28 -0700
commit1408a401debec4b57f9c5e6ac75b64e8b9124591 (patch)
treec975aa474f6c8f268e387c63b274b827eb6eeb91
parent49011af0ae7e9bb9f9446319c001d05a1b55a1c5 (diff)
downloaduhd-1408a401debec4b57f9c5e6ac75b64e8b9124591.tar.gz
uhd-1408a401debec4b57f9c5e6ac75b64e8b9124591.tar.bz2
uhd-1408a401debec4b57f9c5e6ac75b64e8b9124591.zip
rfnoc: modify duc.xml and radio_x300.xml;add duc_single.xml
-rw-r--r--host/include/uhd/rfnoc/blocks/duc.xml57
-rw-r--r--host/include/uhd/rfnoc/blocks/duc_single.xml96
-rw-r--r--host/include/uhd/rfnoc/blocks/radio_x300.xml9
3 files changed, 151 insertions, 11 deletions
diff --git a/host/include/uhd/rfnoc/blocks/duc.xml b/host/include/uhd/rfnoc/blocks/duc.xml
index 62f005372..9be54da78 100644
--- a/host/include/uhd/rfnoc/blocks/duc.xml
+++ b/host/include/uhd/rfnoc/blocks/duc.xml
@@ -5,7 +5,7 @@
<key>DUC</key>
<!--There can be several of these:-->
<ids>
- <id revision="0">D0C0</id>
+ <id revision="0">D0C0000000000002</id>
</ids>
<!-- Registers -->
<registers>
@@ -80,15 +80,64 @@
<value>1.0</value>
<port>0</port>
</arg>
- </args>
+ <arg>
+ <name>freq</name>
+ <type>double</type>
+ <value>0.0</value>
+ <port>1</port>
+ <!--<action>-->
+ <!--SR_WRITE("CORDIC_FREQ", $cordic_freq)-->
+ <!--</action>-->
+ <!--FIXME Calculate this properly-->
+ </arg>
+ <arg>
+ <name>input_rate</name>
+ <type>double</type>
+ <value>1.0</value>
+ <port>1</port>
+ <check>GE($input_rate, 0.0)</check>
+ <check_message>The input rate must be a positive value (in Hz).</check_message>
+ </arg>
+ <arg>
+ <name>output_rate</name>
+ <type>double</type>
+ <value>1.0</value>
+ <port>1</port>
+ <check>GE($output_rate, 0.0)</check>
+ <check_message>The output rate must be a positive value (in Hz).</check_message>
+ </arg>
+ <arg>
+ <name>fullscale</name>
+ <type>double</type>
+ <value>1.0</value>
+ <port>1</port>
+ <check>GE($fullscale, 0.0)</check>
+ <check_message>The output rate must be a positive value (in Hz).</check_message>
+ <!--FIXME Calculate this properly-->
+ </arg>
+ <arg>
+ <name>scalar_correction</name>
+ <type>double</type>
+ <value>1.0</value>
+ <port>1</port>
+ </arg>
+</args>
<!--All the connections to the outside world are listed in 'ports':-->
<ports>
<sink>
- <name>in</name>
+ <name>in0</name>
+ <type>sc16</type>
+ </sink>
+ <source>
+ <name>out0</name>
+ <type>sc16</type>
+ </source>
+ <sink>
+ <name>in1</name>
<type>sc16</type>
</sink>
<source>
- <name>out</name>
+ <name>out1</name>
<type>sc16</type>
</source>
</ports>
diff --git a/host/include/uhd/rfnoc/blocks/duc_single.xml b/host/include/uhd/rfnoc/blocks/duc_single.xml
new file mode 100644
index 000000000..39038eeee
--- /dev/null
+++ b/host/include/uhd/rfnoc/blocks/duc_single.xml
@@ -0,0 +1,96 @@
+<!--This defines one NoC-Block.-->
+<nocblock>
+ <name>Tx DSP (DUC/CORDIC)</name>
+ <blockname>DUC</blockname>
+ <key>DUC</key>
+ <!--There can be several of these:-->
+ <ids>
+ <id revision="0">D0C0000000000000</id>
+ </ids>
+ <!-- Registers -->
+ <registers>
+ <!-- AXI rate change block registers -->
+ <setreg>
+ <name>N</name>
+ <address>128</address>
+ </setreg>
+ <setreg>
+ <name>M</name>
+ <address>129</address>
+ </setreg>
+ <setreg>
+ <!-- 1 bit, enable clear user -->
+ <name>CONFIG</name>
+ <address>130</address>
+ </setreg>
+ <!-- DUC block registers -->
+ <setreg>
+ <name>INTERP_WORD</name> <!--Includes the half-bands and the CIC-->
+ <address>131</address>
+ </setreg>
+ <setreg>
+ <name>CORDIC_FREQ</name>
+ <address>132</address>
+ </setreg>
+ <setreg>
+ <name>SCALE_IQ</name>
+ <address>133</address>
+ </setreg>
+ </registers>
+ <!-- Args -->
+ <args>
+ <arg>
+ <name>freq</name>
+ <type>double</type>
+ <value>0.0</value>
+ <port>0</port>
+ <!--<action>-->
+ <!--SR_WRITE("CORDIC_FREQ", $cordic_freq)-->
+ <!--</action>-->
+ <!--FIXME Calculate this properly-->
+ </arg>
+ <arg>
+ <name>input_rate</name>
+ <type>double</type>
+ <value>1.0</value>
+ <port>0</port>
+ <check>GE($input_rate, 0.0)</check>
+ <check_message>The input rate must be a positive value (in Hz).</check_message>
+ </arg>
+ <arg>
+ <name>output_rate</name>
+ <type>double</type>
+ <value>1.0</value>
+ <port>0</port>
+ <check>GE($output_rate, 0.0)</check>
+ <check_message>The output rate must be a positive value (in Hz).</check_message>
+ </arg>
+ <arg>
+ <name>fullscale</name>
+ <type>double</type>
+ <value>1.0</value>
+ <port>0</port>
+ <check>GE($fullscale, 0.0)</check>
+ <check_message>The output rate must be a positive value (in Hz).</check_message>
+ <!--FIXME Calculate this properly-->
+ </arg>
+ <arg>
+ <name>scalar_correction</name>
+ <type>double</type>
+ <value>1.0</value>
+ <port>0</port>
+ </arg>
+</args>
+ <!--All the connections to the outside world are listed in 'ports':-->
+ <ports>
+ <sink>
+ <name>in</name>
+ <type>sc16</type>
+ </sink>
+ <source>
+ <name>out</name>
+ <type>sc16</type>
+ </source>
+ </ports>
+</nocblock>
+
diff --git a/host/include/uhd/rfnoc/blocks/radio_x300.xml b/host/include/uhd/rfnoc/blocks/radio_x300.xml
index 4130522a5..8621ac40f 100644
--- a/host/include/uhd/rfnoc/blocks/radio_x300.xml
+++ b/host/include/uhd/rfnoc/blocks/radio_x300.xml
@@ -32,17 +32,12 @@
</args>
<ports>
<sink>
- <name>in0</name>
- <type>sc16</type>
- <!--<vlen>$spp</vlen>-->
- <!--<pkt_size>%vlen</pkt_size>-->
- </sink>
- <sink>
- <name>in1</name>
+ <name>in</name>
<type>sc16</type>
<!--<vlen>$spp</vlen>-->
<!--<pkt_size>%vlen</pkt_size>-->
</sink>
+
<source>
<name>out0</name>
<type>sc16</type>