Reply by MikeWhy May 6, 20092009-05-06
"mstanisz" <matt.staniszewski@gmail.com> wrote in message 
news:0f2dnf-i_aMyL53XnZ2dnUVZ_hqdnZ2d@giganews.com...
> I've searched a little more and found that if I can somehow merge Ben > Cohen's 0 ohm device > (http://groups.google.com/group/comp.lang.vhdl/msg/7d14832588a0cabb) with > a > bi-directional MUX > (http://www.tek-tips.com/viewthread.cfm?qid=1188582&page=7), then I might > be able to create the VHDL module I would need. The bus splitting > doesn't > need a module, since in VHDL I'll just manipulate bit0 of the inputted > flash data bus and pass the other 7 bits through. Would this work? > Thanks. > > Matt
You'll still need logic to figure out which personality is active. No one here is likely to write it for you, as this is a seminal moment in your learning. There's quite a bit involved, but they're all small and nothing by itself is overwhelming. Step away from the immediate problem, and take it a step at a time. Start with a basic, empty ISE project, and wire one user I/O pin for dual functions as you have in the actual problem. Setup up a testbench and play with it in simulation. The immediate problem is strictly behavioral, so it should simulate well before moving on. What are the roles of CE#, WE#, and SPI CS? Can you safely arbitrate conflicts? What effect does the additional logic have on signal timing? What are those requirements, and how do you specify them in the design? Once it's working, how will you integrate it into EDK? Antii's suggestion of a pcore you can reuse is a good one. Another way is to wrap the xmp system in an overall design, and instantiate it there.
> >>The MISO and data<0> signals are bidirectional (IO). Can you make a >>mux/switcher and bus splitter for bidirectional signals? >> >>Matt >> >>>"mstanisz" <matt.staniszewski@gmail.com> wrote in message >>>news:19mdndgAN665R2LUnZ2dnUVZ_qadnZ2d@giganews.com... >>>> Okay, I went ahead and removed the duplicate NETs in the UCF and made >>them >>>> internal. I'm trying to figure out how to MUX between the two > signals >>>> using a core in EDK. It does seem like it should be fairly simple, > but >> >>>> I'm >>>> not sure how to go about it with IP cores. Thanks. >>> >>>Minimally, define a module with OUT pins for the two now disconnected >>nets, >>>additional pins for selection, and an IN pin for the external net. Add >>the >>>external net to the UCF. This is exactly as you would do for any old >>simple >>>design. There might already be an example or usable hdl in the samples >>files >>>for that board. >>> >>>My normal workflow wraps the EDK project in an ISE project. Instantiate >>the >>>switcher/mux in the top most module, at the same level you instantiate >>the >>>EDK system. Swap and mix the pins as you need. Take a look at (for a >>project >>>named system.xmp) hdl/system_stub.vhd for an example of instantiating > the >> >>>EDK system. >>> >>>I think it would be a bad idea to tear into the pcore hdl or wrappers > to >>do >>>this. >>> >>> >>
Reply by Antt...@googlemail.com May 6, 20092009-05-06
On May 6, 12:42=A0am, "mstanisz" <matt.staniszew...@gmail.com> wrote:
> I've searched a little more and found that if I can somehow merge Ben > Cohen's 0 ohm device > (http://groups.google.com/group/comp.lang.vhdl/msg/7d14832588a0cabb) with > a > bi-directional MUX > (http://www.tek-tips.com/viewthread.cfm?qid=3D1188582&page=3D7), then I m=
ight
> be able to create the VHDL module I would need. =A0The bus splitting > doesn't > need a module, since in VHDL I'll just manipulate bit0 of the inputted > flash data bus and pass the other 7 bits through. =A0Would this work? > Thanks. > > Matt > > > > > > >The MISO and data<0> signals are bidirectional (IO). =A0Can you make a > >mux/switcher and bus splitter for bidirectional signals? > > >Matt > > >>"mstanisz" <matt.staniszew...@gmail.com> wrote in message > >>news:19mdndgAN665R2LUnZ2dnUVZ_qadnZ2d@giganews.com... > >>> Okay, I went ahead and removed the duplicate NETs in the UCF and made > >them > >>> internal. =A0I'm trying to figure out how to MUX between the two > signals > >>> using a core in EDK. =A0It does seem like it should be fairly simple, > but > > >>> I'm > >>> not sure how to go about it with IP cores. =A0Thanks. > > >>Minimally, define a module with OUT pins for the two now disconnected > >nets, > >>additional pins for selection, and an IN pin for the external net. Add > >the > >>external net to the UCF. This is exactly as you would do for any old > >simple > >>design. There might already be an example or usable hdl in the samples > >files > >>for that board. > > >>My normal workflow wraps the EDK project in an ISE project. Instantiate > >the > >>switcher/mux in the top most module, at the same level you instantiate > >the > >>EDK system. Swap and mix the pins as you need. Take a look at (for a > >project > >>named system.xmp) hdl/system_stub.vhd for an example of instantiating > the > > >>EDK system. > > >>I think it would be a bad idea to tear into the pcore hdl or wrappers > to > >do > >>this.- Hide quoted text - > > - Show quoted text -
you need own small EDK IP, that connects to xx_I xx_T xx_O busses (from the parallel flash core, you need make this bus internal) and to your signal. you need to mux using control signal, the new IP exposes the new bus to be exported takes about 30 minutes to make Antti
Reply by mstanisz May 5, 20092009-05-05
I've searched a little more and found that if I can somehow merge Ben
Cohen's 0 ohm device
(http://groups.google.com/group/comp.lang.vhdl/msg/7d14832588a0cabb) with
a
bi-directional MUX
(http://www.tek-tips.com/viewthread.cfm?qid=1188582&page=7), then I might
be able to create the VHDL module I would need.  The bus splitting
doesn't
need a module, since in VHDL I'll just manipulate bit0 of the inputted
flash data bus and pass the other 7 bits through.  Would this work? 
Thanks.

Matt

>The MISO and data<0> signals are bidirectional (IO). Can you make a >mux/switcher and bus splitter for bidirectional signals? > >Matt > >>"mstanisz" <matt.staniszewski@gmail.com> wrote in message >>news:19mdndgAN665R2LUnZ2dnUVZ_qadnZ2d@giganews.com... >>> Okay, I went ahead and removed the duplicate NETs in the UCF and made >them >>> internal. I'm trying to figure out how to MUX between the two
signals
>>> using a core in EDK. It does seem like it should be fairly simple,
but
> >>> I'm >>> not sure how to go about it with IP cores. Thanks. >> >>Minimally, define a module with OUT pins for the two now disconnected >nets, >>additional pins for selection, and an IN pin for the external net. Add >the >>external net to the UCF. This is exactly as you would do for any old >simple >>design. There might already be an example or usable hdl in the samples >files >>for that board. >> >>My normal workflow wraps the EDK project in an ISE project. Instantiate >the >>switcher/mux in the top most module, at the same level you instantiate >the >>EDK system. Swap and mix the pins as you need. Take a look at (for a >project >>named system.xmp) hdl/system_stub.vhd for an example of instantiating
the
> >>EDK system. >> >>I think it would be a bad idea to tear into the pcore hdl or wrappers
to
>do >>this. >> >> >
Reply by mstanisz May 5, 20092009-05-05
The MISO and data<0> signals are bidirectional (IO).  Can you make a
mux/switcher and bus splitter for bidirectional signals?

Matt

>"mstanisz" <matt.staniszewski@gmail.com> wrote in message >news:19mdndgAN665R2LUnZ2dnUVZ_qadnZ2d@giganews.com... >> Okay, I went ahead and removed the duplicate NETs in the UCF and made
them
>> internal. I'm trying to figure out how to MUX between the two signals >> using a core in EDK. It does seem like it should be fairly simple, but
>> I'm >> not sure how to go about it with IP cores. Thanks. > >Minimally, define a module with OUT pins for the two now disconnected
nets,
>additional pins for selection, and an IN pin for the external net. Add
the
>external net to the UCF. This is exactly as you would do for any old
simple
>design. There might already be an example or usable hdl in the samples
files
>for that board. > >My normal workflow wraps the EDK project in an ISE project. Instantiate
the
>switcher/mux in the top most module, at the same level you instantiate
the
>EDK system. Swap and mix the pins as you need. Take a look at (for a
project
>named system.xmp) hdl/system_stub.vhd for an example of instantiating the
>EDK system. > >I think it would be a bad idea to tear into the pcore hdl or wrappers to
do
>this. > >
Reply by MikeWhy May 5, 20092009-05-05
"mstanisz" <matt.staniszewski@gmail.com> wrote in message 
news:19mdndgAN665R2LUnZ2dnUVZ_qadnZ2d@giganews.com...
> Okay, I went ahead and removed the duplicate NETs in the UCF and made them > internal. I'm trying to figure out how to MUX between the two signals > using a core in EDK. It does seem like it should be fairly simple, but > I'm > not sure how to go about it with IP cores. Thanks.
Minimally, define a module with OUT pins for the two now disconnected nets, additional pins for selection, and an IN pin for the external net. Add the external net to the UCF. This is exactly as you would do for any old simple design. There might already be an example or usable hdl in the samples files for that board. My normal workflow wraps the EDK project in an ISE project. Instantiate the switcher/mux in the top most module, at the same level you instantiate the EDK system. Swap and mix the pins as you need. Take a look at (for a project named system.xmp) hdl/system_stub.vhd for an example of instantiating the EDK system. I think it would be a bad idea to tear into the pcore hdl or wrappers to do this.
Reply by mstanisz May 5, 20092009-05-05
Okay, I went ahead and removed the duplicate NETs in the UCF and made them
internal.  I'm trying to figure out how to MUX between the two signals
using a core in EDK.  It does seem like it should be fairly simple, but I'm
not sure how to go about it with IP cores.  Thanks.

Matt

>Busses become single pins in the .ucf. Comment out the Data<0> and
SPI_MISO
>nets in the ucf so they become internal ports, and add a new NET to >represent their combined function. You'll need a module to connect and >select between them. I suspect this is much easier said than done, >especially if the functions are in different clock domains or if the
enables
>are less than dead simple. Also, the added logic might push a marginal >design beyond timing allowances. All the same, modifying supplied HDL
always
>seems a bad idea.> >"mstanisz" <matt.staniszewski@gmail.com> wrote in message >news:1t6dnfigwrwkXmDUnZ2dnUVZ_qmdnZ2d@giganews.com... >> Hi Glen, >> >> The EDK is Xilinx's Embedded Development Kit. The way components, such
as
>> the ADC and flash memory, are implemented as reconfigurable
Intellectual
>> Property (IP) cores. These are essentially reconfigurable blocks of
VHDL
>> code that you set in the GUI. >> >> So, I believe I'll need to modify this VHDL code after it's generated, >> since the EDK gui will not let me set a single pin from the flash data
bus
>> to a specific location. Rather, the IP core only lets you map a
16-bit
>> bus. >> >> Thanks. >> >> Matt >> >> >>>mstanisz <matt.staniszewski@gmail.com> wrote: >>> >>>> Thanks for the quick response. I've read through the User's Guide
and
>> saw >>>> that part. I have a GPIO set up for all the CENs and CSs that I
need
>> to >>>> control as specified in the documentation. However, I wasn't sure
how
>> to >>>> multiplex the two devices to the N10 net in the EDK, since the flash >> IP >>>> core specifies a 16-bit bus and I only need to share 1 bit of that
with
>> the >>>> MISO signal. I feel I need to modify the system VHDL file that the >> EDK >>>> generates, but I wasn't sure where I should do that. Any help would >> be >>>> great. Thanks! >>> >>>I am not sure what EDK is. >>> >>>I think the usual way is to use only one at a time, and make >>>sure that the other one is disabled. >>> >>>There is a similar double use on the LCD display. >>> >>>-- glen >>> > >
Reply by MikeWhy May 3, 20092009-05-03
Busses become single pins in the .ucf. Comment out the Data<0> and SPI_MISO 
nets in the ucf so they become internal ports, and add a new NET to 
represent their combined function. You'll need a module to connect and 
select between them. I suspect this is much easier said than done, 
especially if the functions are in different clock domains or if the enables 
are less than dead simple. Also, the added logic might push a marginal 
design beyond timing allowances. All the same, modifying supplied HDL always 
seems a bad idea.


"mstanisz" <matt.staniszewski@gmail.com> wrote in message 
news:1t6dnfigwrwkXmDUnZ2dnUVZ_qmdnZ2d@giganews.com...
> Hi Glen, > > The EDK is Xilinx's Embedded Development Kit. The way components, such as > the ADC and flash memory, are implemented as reconfigurable Intellectual > Property (IP) cores. These are essentially reconfigurable blocks of VHDL > code that you set in the GUI. > > So, I believe I'll need to modify this VHDL code after it's generated, > since the EDK gui will not let me set a single pin from the flash data bus > to a specific location. Rather, the IP core only lets you map a 16-bit > bus. > > Thanks. > > Matt > > >>mstanisz <matt.staniszewski@gmail.com> wrote: >> >>> Thanks for the quick response. I've read through the User's Guide and > saw >>> that part. I have a GPIO set up for all the CENs and CSs that I need > to >>> control as specified in the documentation. However, I wasn't sure how > to >>> multiplex the two devices to the N10 net in the EDK, since the flash > IP >>> core specifies a 16-bit bus and I only need to share 1 bit of that with > the >>> MISO signal. I feel I need to modify the system VHDL file that the > EDK >>> generates, but I wasn't sure where I should do that. Any help would > be >>> great. Thanks! >> >>I am not sure what EDK is. >> >>I think the usual way is to use only one at a time, and make >>sure that the other one is disabled. >> >>There is a similar double use on the LCD display. >> >>-- glen >>
Reply by mstanisz May 3, 20092009-05-03
Hi Glen,

The EDK is Xilinx's Embedded Development Kit.  The way components, such as
the ADC and flash memory, are implemented as reconfigurable Intellectual
Property (IP) cores.  These are essentially reconfigurable blocks of VHDL
code that you set in the GUI.

So, I believe I'll need to modify this VHDL code after it's generated,
since the EDK gui will not let me set a single pin from the flash data bus
to a specific location.  Rather, the IP core only lets you map a 16-bit
bus.

Thanks.

Matt


>mstanisz <matt.staniszewski@gmail.com> wrote: > >> Thanks for the quick response. I've read through the User's Guide and
saw
>> that part. I have a GPIO set up for all the CENs and CSs that I need
to
>> control as specified in the documentation. However, I wasn't sure how
to
>> multiplex the two devices to the N10 net in the EDK, since the flash
IP
>> core specifies a 16-bit bus and I only need to share 1 bit of that with
the
>> MISO signal. I feel I need to modify the system VHDL file that the
EDK
>> generates, but I wasn't sure where I should do that. Any help would
be
>> great. Thanks! > >I am not sure what EDK is. > >I think the usual way is to use only one at a time, and make >sure that the other one is disabled. > >There is a similar double use on the LCD display. > >-- glen >
Reply by glen herrmannsfeldt May 2, 20092009-05-02
mstanisz <matt.staniszewski@gmail.com> wrote:
 
> Thanks for the quick response. I've read through the User's Guide and saw > that part. I have a GPIO set up for all the CENs and CSs that I need to > control as specified in the documentation. However, I wasn't sure how to > multiplex the two devices to the N10 net in the EDK, since the flash IP > core specifies a 16-bit bus and I only need to share 1 bit of that with the > MISO signal. I feel I need to modify the system VHDL file that the EDK > generates, but I wasn't sure where I should do that. Any help would be > great. Thanks!
I am not sure what EDK is. I think the usual way is to use only one at a time, and make sure that the other one is disabled. There is a similar double use on the LCD display. -- glen
Reply by mstanisz May 2, 20092009-05-02
Hi Glen,

Thanks for the quick response.  I've read through the User's Guide and saw
that part.  I have a GPIO set up for all the CENs and CSs that I need to
control as specified in the documentation.  However, I wasn't sure how to
multiplex the two devices to the N10 net in the EDK, since the flash IP
core specifies a 16-bit bus and I only need to share 1 bit of that with the
MISO signal.  I feel I need to modify the system VHDL file that the EDK
generates, but I wasn't sure where I should do that.  Any help would be
great.  Thanks!

Matt


>mstanisz <matt.staniszewski@gmail.com> wrote: > >> I've been working on a Spartan3E Starter Kit and I've hit a snag while >> using both the onboard ADC and the StrataFlash PROM. The SPI bus MISO >> signal for the ADC and the memory's bit0 for its data are the same net.
>> Could anyone explain how to map the MISO and data pin to the same NET?
>> I've tried doing it in the MHS and UCF files in the Xilinx EDK, but it >> doesn't seem to hold. I think I may need to either modify the VHDL
code or
>> possibly make another core to do what I need. > >I believe this is explained in the documentation. It seems that >there are a limited number of I/O pins, and some have two uses. >Page 87 of UG230 explains the problem. Pretty much, you have >to multiplex between them, so that you can't use both at the >maximum rate. > >-- glen >