gpio.xml

changeset 1
dfc32cad81ba
parent 0
267b5a25932f
     1.1 --- a/gpio.xml	Fri Aug 13 10:41:29 2010 +0100
     1.2 +++ b/gpio.xml	Sat Aug 06 01:43:24 2011 +0100
     1.3 @@ -1,5 +1,5 @@
     1.4  <?xml version="1.0" encoding="UTF-8"?>
     1.5 -<Component Name="gpio" Text="GPIO" Type="IO" Ver="3.1" Help="gpio\document\gpio.htm">
     1.6 +<Component Name="gpio" Text="GPIO" Type="IO" Ver="3.3" Help="gpio\document\gpio.htm" Processor="LM32,LM8" LatticeFamily="All" Device="All">
     1.7  	<MasterSlavePorts>
     1.8  		<SlavePort Prefix="GPIO" Name="GP I/O Port" Type="DATA,DMAR,DMAW"/>
     1.9  	</MasterSlavePorts>
    1.10 @@ -14,32 +14,48 @@
    1.11  		<ExternalPort Name="PIO_IO" Type="inout" Width="DATA_WIDTH" Condition="TRISTATE_PORTS" />
    1.12  	</ExternalPorts>
    1.13          <DeviceDriver InitRoutine="MicoGPIOInit" StructName="MicoGPIOCtx_t">
    1.14 -                <DDInclude Include = "LookupServices.h"/>
    1.15 -                <DDstruct>			
    1.16 -			<DDSElem MemberName = "name" MemberType = "const char*" Type = "Parm" Value = "InstanceName" Format="string"/>
    1.17 -			<DDSElem MemberName = "base" MemberType = "unsigned int" Type = "Parm" Value = "BASE_ADDRESS" />
    1.18 -                        <DDSElem MemberName = "lookupReg" MemberType = "DeviceReg_t" Type="uninitialized" Value=""/>
    1.19 -                        <DDSElem MemberName = "intrLevel" MemberType = "unsigned int" Type = "Interrupt" Value = "IRQ_LEVEL" />
    1.20 -                        <DDSElem MemberName = "output_only" MemberType = "unsigned int" Type = "Parm" Value = "OUTPUT_PORTS_ONLY" />
    1.21 -                        <DDSElem MemberName = "input_only" MemberType = "unsigned int" Type = "Parm" Value = "INPUT_PORTS_ONLY" />
    1.22 -                        <DDSElem MemberName = "in_and_out" MemberType = "unsigned int" Type = "Parm" Value = "BOTH_INPUT_AND_OUTPUT" />
    1.23 -                        <DDSElem MemberName = "tristate" MemberType = "unsigned int" Type = "Parm" Value = "TRISTATE_PORTS"	/>
    1.24 -                        <DDSElem MemberName = "data_width" MemberType = "unsigned int" Type = "Parm" Value = "DATA_WIDTH" />
    1.25 -                        <DDSElem MemberName = "input_width" MemberType = "unsigned int" Type = "Parm" Value = "INPUT_WIDTH" />
    1.26 -                        <DDSElem MemberName = "output_width" MemberType = "unsigned int" Type = "Parm" Value = "OUTPUT_WIDTH" />
    1.27 -                        <DDSElem MemberName = "intr_enable" MemberType = "unsigned int" Type = "Parm" Value = "IRQ_MODE" />
    1.28 -                        <DDSElem MemberName = "prev" MemberType = "void *" Type = "uninitialized" Value = "" />
    1.29 -                        <DDSElem MemberName = "next" MemberType = "void *" Type = "uninitialized" Value = "" />
    1.30 +                <DDInclude Include = "LookupServices.h" Processor="LM32"/>
    1.31 +                <DDInclude Include = "stddef.h" Processor="LM8"/>
    1.32 +				<DDIRQ IRQAPI="MicoGPIOISR" Parameter="InstanceName" Include="MicoGPIO.h" Processor="LM8"/>
    1.33 +	            <DDPreProcessor Name="__MICOGPIO_USER_IRQ_HANDLER__" Processor="LM8"/>
    1.34 +                <DDstruct>
    1.35 +			<DDSElem MemberName = "name" MemberType = "const char*" Type = "Parm" Value = "InstanceName" Format="string" Processor="LM32,LM8"/>
    1.36 +			<DDSElem MemberName = "base" MemberType = "unsigned int" Type = "Parm" Value = "BASE_ADDRESS" Processor="LM32"/>
    1.37 +			<DDSElem MemberName = "base" MemberType = "size_t" Type = "Parm" Value = "BASE_ADDRESS" Processor="LM8"/>
    1.38 +                        <DDSElem MemberName = "lookupReg" MemberType = "DeviceReg_t" Type="uninitialized" Value="" Processor="LM32"/>
    1.39 +                        <DDSElem MemberName = "intrLevel" MemberType = "unsigned int" Type = "Interrupt" Value = "IRQ_LEVEL" Processor="LM32"/>
    1.40 +                        <DDSElem MemberName = "intrLevel" MemberType = "unsigned char" Type = "Interrupt" Value = "IRQ_LEVEL" Processor="LM8"/>
    1.41 +                        <DDSElem MemberName = "output_only" MemberType = "unsigned int" Type = "Parm" Value = "OUTPUT_PORTS_ONLY" Processor="LM32"/>
    1.42 +                        <DDSElem MemberName = "output_only" MemberType = "unsigned int" Type = "Parm" Value = "OUTPUT_PORTS_ONLY" Processor="LM8"/>
    1.43 +                        <DDSElem MemberName = "input_only" MemberType = "unsigned int" Type = "Parm" Value = "INPUT_PORTS_ONLY" Processor="LM32"/>
    1.44 +                        <DDSElem MemberName = "input_only" MemberType = "unsigned char" Type = "Parm" Value = "INPUT_PORTS_ONLY" Processor="LM8"/>
    1.45 +                        <DDSElem MemberName = "in_and_out" MemberType = "unsigned int" Type = "Parm" Value = "BOTH_INPUT_AND_OUTPUT" Processor="LM32"/>
    1.46 +                        <DDSElem MemberName = "in_and_out" MemberType = "unsigned char" Type = "Parm" Value = "BOTH_INPUT_AND_OUTPUT" Processor="LM8"/>
    1.47 +			<DDSElem MemberName = "tristate" MemberType = "unsigned int" Type = "Parm" Value = "TRISTATE_PORTS" Processor="LM32"/>
    1.48 +			<DDSElem MemberName = "tristate" MemberType = "unsigned char" Type = "Parm" Value = "TRISTATE_PORTS" Processor="LM8"/>
    1.49 +                        <DDSElem MemberName = "data_width" MemberType = "unsigned int" Type = "Parm" Value = "DATA_WIDTH" Processor="LM32"/>
    1.50 +                        <DDSElem MemberName = "data_width" MemberType = "unsigned char" Type = "Parm" Value = "DATA_WIDTH" Processor="LM8"/>
    1.51 +                        <DDSElem MemberName = "input_width" MemberType = "unsigned int" Type = "Parm" Value = "INPUT_WIDTH" Processor="LM32"/>
    1.52 +                        <DDSElem MemberName = "input_width" MemberType = "unsigned char" Type = "Parm" Value = "INPUT_WIDTH" Processor="LM8"/>
    1.53 +                        <DDSElem MemberName = "output_width" MemberType = "unsigned int" Type = "Parm" Value = "OUTPUT_WIDTH" Processor="LM32"/>
    1.54 +                        <DDSElem MemberName = "output_width" MemberType = "unsigned char" Type = "Parm" Value = "OUTPUT_WIDTH" Processor="LM8"/>
    1.55 +                        <DDSElem MemberName = "intr_enable" MemberType = "unsigned int" Type = "Parm" Value = "IRQ_MODE" Processor="LM32"/>
    1.56 +                        <DDSElem MemberName = "intr_enable" MemberType = "unsigned char" Type = "Parm" Value = "IRQ_MODE" Processor="LM8"/>
    1.57 +                        <DDSElem MemberName = "wb_data_size" MemberType = "unsigned int" Type = "Parm" Value = "WB_DAT_WIDTH" Processor="LM32"/>
    1.58 +                        <DDSElem MemberName = "prev" MemberType = "void *" Type = "uninitialized" Value = "" Processor="LM32"/>
    1.59 +                        <DDSElem MemberName = "next" MemberType = "void *" Type = "uninitialized" Value = "" Processor="LM32"/>
    1.60                  </DDstruct>
    1.61          </DeviceDriver>
    1.62        <Files>
    1.63 -	    <File Name="../components/gpio/rtl/verilog/gpio.v" />
    1.64 -	    <File Name="../components/gpio/rtl/verilog/tpio.v" />
    1.65 +	    <File Name="../components/gpio/rtl/verilog/gpio.v"/>
    1.66 +	    <File Name="../components/gpio/rtl/verilog/tpio.v"/>
    1.67        </Files>
    1.68  	<Parms>
    1.69 -		<Parm Name="InstanceName"    Value="gpio"     Type="string" isiname="true" Text="Instance Name"/>
    1.70 -		<Parm Name="BASE_ADDRESS"    Value="0x80000000" Type="Integer" isba="true" Text="Base Address"/>
    1.71 -		<Parm Name="SIZE"            Value="128"    Type="Integer" issize="true" Text="Size" Enable="false"/>
    1.72 +		<Parm Name="InstanceName" Value="gpio" Type="string" isiname="true" Text="Instance Name"/>
    1.73 +		<Parm Name="BASE_ADDRESS" Value="0x80000000" Type="Integer" isba="true" Text="Base Address"/>
    1.74 +		<Parm Name="SIZE" Value="16" Type="Integer" issize="true" Text="Size" Enable="false"/>
    1.75 +		<Parm Name="WB_DAT_WIDTH" Port="GPIO" Type="List" ListValues="8,32" OType="Integer" Value="32" Text="WISHBONE Data Bus Width" isparm="true"/>
    1.76 +		<Parm Name="WB_ADR_WIDTH" Port="GPIO" Type="Integer" OType="Integer" Value="4" Text="WISHBONE Address Bus Width" isparm="true"/>
    1.77                  <Parm Name="ADDRESS_LOCK" Type="Define" Value="undef" Text="Lock Address"/>
    1.78  		<Parm Name="DISABLE" Type="Define" Value="undef" isuse="true" Text="Disable Component"/>
    1.79  		<Parm Name="OUTPUT_PORTS_ONLY" Type="define" Value="def" GROUP="XFER_MODE" Text="Output Ports Only" isparm="true" />
    1.80 @@ -50,8 +66,8 @@
    1.81  		<Parm Name="INPUT_WIDTH" Type="Integer" ValueRange="1-32" Value="1" Condition="BOTH_INPUT_AND_OUTPUT" Text="Input Width" isparm="true"/>
    1.82  		<Parm Name="OUTPUT_WIDTH" Type="Integer" ValueRange="1-32" Value="1" Condition="BOTH_INPUT_AND_OUTPUT" Text="Output Width" isparm="true"/>
    1.83  		<Parm Name="IRQ_MODE" Type="define" Value="undef" Text="IRQ Mode" isparm="true"/>
    1.84 -		<Parm Name="LEVEL" Type="define" Value="undef" GROUP="IMODE" Condition="IRQ_MODE" Text="Level" isparm="true"/>
    1.85 -		<Parm Name="EDGE" Type="define" Value="def" GROUP="IMODE" Condition="IRQ_MODE" Text="Edge" isparm="true"/>
    1.86 +		<Parm Name="LEVEL" Type="define" Value="undef" GROUP="IMODE" Condition="IRQ_MODE" Text="Level Sensitive" isparm="true"/>
    1.87 +		<Parm Name="EDGE" Type="define" Value="def" GROUP="IMODE" Condition="IRQ_MODE" Text="Edge Sensitive" isparm="true"/>
    1.88  		<Parm Name="EITHER_EDGE_IRQ" Type="define" Value="undef" Group="EMODE" Condition="EDGE" Text="Either Edge" isparm="true"/>
    1.89  		<Parm Name="POSE_EDGE_IRQ" Type="define" Value="def" Group="EMODE" Condition="EDGE" Text="Postive Edge" isparm="true"/>
    1.90  		<Parm Name="NEGE_EDGE_IRQ" Type="define" Value="undef" Group="EMODE" Condition="EDGE" Text="Negative Edge" isparm="true"/>
    1.91 @@ -59,25 +75,29 @@
    1.92        <GUIS Columns="2" Help="component_help\lm32.htm" Name="GPIO">
    1.93              <GUI Widget="Text" Span="1" Name="InstanceName" Width="40"/>
    1.94              <GUI Widget="Text" Span="1" Name="BASE_ADDRESS"/>
    1.95 -            <GUI Widget="Group" Span="1" Name="XFER_MODE" Text="Port Types" Columns="1"/>
    1.96 +	    
    1.97 +	    <GUI Widget="Group" Span="1" Name="XFER_MODE" Text="Port Types" Columns="1"/>
    1.98              <GUI Widget="Radio" Span="1" Name="OUTPUT_PORTS_ONLY"/>
    1.99              <GUI Widget="Radio" Span="1" Name="INPUT_PORTS_ONLY"/>
   1.100              <GUI Widget="Radio" Span="1" Name="TRISTATE_PORTS"/>
   1.101              <GUI Widget="Radio" Span="1" Name="BOTH_INPUT_AND_OUTPUT"/>
   1.102 -
   1.103 -            <GUI Widget="Group" Span="1" Text="Port Width" Columns="2"/>
   1.104 +	    
   1.105 +            <GUI Widget="Group" Span="1" Text="Input/Output Port Widths" Columns="2"/>
   1.106              <GUI Widget="Spinner" Span="1" Name="DATA_WIDTH"/>
   1.107              <GUI Widget="Spinner" Span="1" Name="INPUT_WIDTH"/>
   1.108              <GUI Widget="Spinner" Span="1" Name="OUTPUT_WIDTH"/>
   1.109 -
   1.110 -            <GUI Widget="Group" Span="1" Name="IRQ_MODE" Text="IRQ Mode" Columns="1"/>
   1.111 +	    	    	    
   1.112 +            <GUI Widget="Group" Span="2" Name="IRQ_MODE" Text="IRQ Mode" Columns="3"/>
   1.113              <GUI Widget="Check" Span="1" Name="IRQ_MODE"/>
   1.114              <GUI Widget="Radio" Span="1" Name="LEVEL"/>
   1.115              <GUI Widget="Radio" Span="1" Name="EDGE"/>
   1.116 -
   1.117 -            <GUI Widget="Group" Span="1" Text="Edge Response" Columns="1"/>
   1.118 +	    
   1.119 +            <GUI Widget="Group" Span="2" Text="Edge Response" Columns="3"/>
   1.120              <GUI Widget="Radio" Span="1" Name="EITHER_EDGE_IRQ"/>
   1.121              <GUI Widget="Radio" Span="1" Name="POSE_EDGE_IRQ"/>
   1.122              <GUI Widget="Radio" Span="1" Name="NEGE_EDGE_IRQ"/>
   1.123 +	    
   1.124 +	    <GUI Widget="Group" Span="2" Text="WISHBONE Configuration" Columns="2"/>
   1.125 +	    <GUI Widget="Combo" Span="1" Name="WB_DAT_WIDTH" Port="GPIO"/>
   1.126       </GUIS>
   1.127  </Component>