Xilinx 3s8000?

All well and good, unless you work in a company that refuses to actually purchase PC's. When they go EOL (end of lease) that's it - they disappear one night never to be seen again. (the IT dept is nice enough to copy everything in your user folder to the new hard disk, though)

We are still fighting to keep an old P3 system that went EOL years ago, and that we are presumably paying penalties on, because it is the last system with a working copy of several packages we need that are no longer supported. It's kind of sad to see so many developers sharing time on what has to be the oldest PC in the department.

Of course, there are always those unsuspecting lab machines that haven't ever had design tools installed on them...

Reply to
radarman
Loading thread data ...

Is that a licensing thing or a functionality thing?

When I got my Spartan 3e starter kit a few days ago, I installed the included ISE 8.1 under E:\Program Files\Xilinx .

When I found out that some things Do Not Work in paths that have spaces in them, I uninstalled it and re-installed it under E:\ProgramFiles\Xilinx .

Have I set myself up for a lifetime of pain until I get a new computer?

--
David M. Palmer  dmpalmer@email.com (formerly @clark.net, @ematic.com)
Reply to
David M. Palmer

Do you say that this would still run at full speed? has anyone tried this?

I suspect the emulation takes quite some ressources ...

bye, Michael

Reply to
Michael Schöberl

No, it's not generally a licensing problem. It's more a problem with lousy programming, and the different versions tripping over each other. The software depends on environment variables instead of using the registry for a lot of things, and depending on which is first, you can end up calling the old version with the new version, or in my case, vice-versa.

The sad thing is, Xilinx gets the rocket science (mapping and PAR) right - but screws up on the little stuff. None of these problems are endemic to Windows applications. For some reason, though, when engineering companies release software, they always ignore the spit and polish. Modeltech did it (and now that they are owned by Mentor Graphics, it's even worse). Synplicity does it - particularly with that HUGE "RUN" button and other non-standard dialogues.

You would think it would be simpler to just write a decent Windows shell, a separate Unix shell, and then use portable C or C++ for the core application than to maintain all that homegrown cruft. Heck, ModelSim is actually *LESS* usable now at 6.1 than it was in 5.8!

Usability aside, though - the tools don't use standard OS features that could help prevent these problems. Most applications use the registry in Windows, where it is fairly simple to setup a structure that allows for multiple versions. In Unix, it is fairly simple to keep all your configuration files in the same folder, and create Makefiles that call out which tool to use.

It isn't hard. If *I* can do it, with just an average knowledge of C and almost zero C++, I suspect the developers at most of these engineering companies can do it as well.

Reply to
radarman

: Do you say that this would still run at full speed? : has anyone tried this?

: I suspect the emulation takes quite some ressources ...

Running an x86 virtual PC on an x86 host can use virtualization where most code (non priveledged stuff etc.) runs nativly, so there is a much less significant performance hit than with emulation.

You need a lot of memory though as both the host and guest OS' memory requirements must be fulfilled.

Also the old tools will have been used with older, slower PCs so will get a speed bost from the modern PC which probably offsets the virtualization overhead.

Where the VM aproach falls down is where you have software that is locked to some physical dongle...

cds

Reply to
c d saunter

Before abandoning this thread, I thought I would cobble together a

72*72->144 multiplier using the 3s500's built-in 18*18->36 bit hardware multipliers. The result is shown below. As you can see, more slices and LUT's are required when using the built-in hardware multipliers than by the same width multiplier written in pure Verilog, *but* the frequency is also faster.

Device utilization summary: --------------------------- Selected Device : 3s500epq208-4 Number of Slices: 817 out of 4656 17% Number of Slice Flip Flops: 669 out of 9312 7% Number of 4 input LUTs: 1094 out of 9312 11% Number of bonded IOBs: 18 out of 158 11% Number of MULT18X18s: 16 out of 20 80% Number of GCLKs: 1 out of 24 4%

Timing Summary: --------------- Speed Grade: -4 Minimum period: 12.982ns (Maximum Frequency: 77.033MHz) Minimum input arrival time before clock: 10.583ns Maximum output required time after clock: 8.062ns Maximum combinational path delay: No path found

It's a little hard to believe that the circuit design using the builtin multipliers actually requires more FPGA space than doing the whole thing in Verilog, so I've pasted the Verilog source code that I wrote to test the hardware multipliers into this message below. As you can see, the synthesizer automatically chooses to use the builtin MULT18X18s simply because I specified an 18*18 bit multiply in the Verilog code (see m36.v) without requiring me to explicitely instantiate the MULT18X18 multipliers by name.

There are three modules. They are:

  1. m36.v
  2. m72.v
  3. main.v

"main.v" is a simple I/O interface for MX_72 which is the main multiplier. The only reason for having "main" is so that the synthesizer won't complain about running out of I/O pins. Let me know if you're able to cut down on the gate count significantly. I already know I could probably eliminate one or two temporary registers I used in MX_72, but doubt it would make much difference.

Regards,

Ron

//================= m72.v ================= // m72.v, (c) May 9, 2006, Ron Dotson

module MX_72 (reset,clock,a,b, r,finished); parameter N=72; // Bus Width of input parameter L=36; // Half the Bus Width parameter S0=0,S1=1,S2=2,S3=3,S4=4,S5=5,S6=6,S7=7; input reset, clock; input [N-1:0] a,b; output reg [2*N-1:0] r; output reg finished;

reg resetMX; reg [1:0] state; reg [L-1:0] a1,b1, a2,b2; reg [2*N-1:0] t1,t2,t3; wire [N-1:0] r1,r2,r3,r4; wire finished1,finished2,finished3,finished4;

MX_36 m1 (resetMX,clock,a1,b1, r1,finished1); MX_36 m2 (resetMX,clock,a1,b2, r2,finished2); MX_36 m3 (resetMX,clock,a2,b1, r3,finished3); MX_36 m4 (resetMX,clock,a2,b2, r4,finished4);

always @(posedge clock) if (reset==1) begin finished

Reply to
Ron

Or you can move the environment variables into bat files, as I did several years back before the linux tools became usable (hosting WebPack and ISE 4.2 on WinMe):

# cat Xilinx4K.bat SET PATH=C:\Xilinx4K\bin\nt;%PATH% SET XILINX=C:\Xilinx4K C:\Xilinx4K\bin\nt\ise.exe

# cat XilinxFdn4.bat SET PATH=C:\XilinxFdn4\bin\nt;%PATH% SET XILINX=C:\XilinxFdn4 C:\XilinxFdn4\bin\nt\dsgnmgr.exe

I assume that is still possible today?

Reply to
fpga_toys

No reason to try it myself, also the cost of VM servers used to be prohibitive for play use but the VMWare scene has changed alot with free guest VMs.

I wonder if there would be some advantage to running Windows Vm boxes on Linux rather than on WIndows host, or vice versa for memory advantages or to satisfy OS preference while using EDA tool with the vendor supported OS.

Indeed but I am sure that other VM users must be using protected software licenses too so same solution at hand, probably network license. Still its more work to insert another layer.

FWIW alot of VM issues get discussed on OSNews since all the vendors are constantly in the news.

Reply to
JJ

Ron,

I was cleaning out one of the labs yesterday and I came by a box topped with much dust. I brushed it off and came across some Xilinx devices.

XC4005-5PG156C XCS40-3PQ208C

I immediately thought of you, as this thread has been indelibly etched into my mind, due to all the colorful and enlightening dialogue.

I have no use for these items, and if Xilinx doesn't see anything wrong with me giving a couple to you, I could then mail them.

Rob

R> Glory and riches are showered upon those who successfully factor one of

Reply to
robnstef

I sincerely appreciate the offer Rob, but unless I'm missing something the devices you mention are older and consequently smaller devices than I really need. I'm looking to target one of the larger vendors devices on a hobbyist budget, and my primary obstacle is the high cost of the design software rather than the FPGAs and development boards themselves. Thanks to John Bass's earlier suggestion about ebay, the cost of the hardware is no longer much of an issue, but if you ever happen to run across an old dusty box labeled "Xilinx ISE Foundation," "Actel Libero Platninum", "Altera Quartus II Standard Edition," or even Lattice Semiconductor's full version of ispLEVER that hasn't yet been "activated", I would surely appreciate a copy of it.

Regards,

Ron

Reply to
Ron

Ron,

I have plenty of older Quartus II versions (4.2 right on up), but its the license file/dongle that I only have one of--sorry.

If the Altera Quartus Web edition (free) will allow you to compile, but not generate programming files, for the Stratix families, you can forward me the design and I'll generate the programming files for you.

I guess you'll have to trust that I won't steal your design. Rest assured that I would never engage in such an impropriety. But you did mention in one of your posts that you were thinking about making your design open source.

Take care, Rob

Reply to
robnstef

Radarman-

Yes I know this feeling. Our "4.1 machine" is a Win9x. Our "6.1 machine" is a slow WinXP that gets used mostly for testing and no one will admit to being it's caretaker.

I think it's a Xilinx conspiracy to further promote FPGAs -- keep the key design engineers stuck using slow PCs so they fully realize the blazing potential of FPGA vs. Pentium. Haha!

-Jeff

Reply to
Jeff Brower

David-

No you're fine. I tell my engineers: back up the hard drive completely, try it once, and if you get lucky and *everything* works, then go ahead. But when the first thing fails, then restore the original drive, and keep the machine pristine. That's our lab rule, believe it or not.

-Jeff

Reply to
Jeff Brower

VMWare is an excelent solution to not only the

"tool version" + "OS version"

problem, but also the

"I don't trust the service packs to not break something I depend on"

I maintain multiple versions of OS + tool + service pack, and all they require is disk space. The following all live on one disk drive. Each VM includes an OS, Xilinx tools, other tools I depend on (such as editors, schematic packages, etc...) and all the projects that I maintain with that combination.

Xilinx_5.2.1_on_DOS_6.22 0.3 Gb Xilinx_ISE_4.2i 1.9 Gb X_ISE_ALI_5.2_SP3 3.9 Gb X_ISE_FND_6_1_SP3 4.3 Gb X_ISE_FND_6_2_SP3 3.2 Gb Xilinx_7_1_1 4.0 Gb

I have also had mutiple additional virtual machines, with different number of service packs applied, such as

X_ISE_FND_6_1 X_ISE_FND_6_1_SP1 X_ISE_FND_6_1_SP2

With disk drives now running as low as $0.33 per Gb

formatting link

My X_ISE_FND_6_1_SP3 computer costs under $2.0

Even older drives at $1.00 per Gb still make this a great solution.

On that 300 Gb drive, I can have about 70 computers, each with a specific version of OS, OS service packs, tools and their service packs. And my 70 unique computers all fit inside 1 tower PC case.

VMware Workstation 5.5 is $189

As for performance, I have found that the performance on the PAR software is around 95% or better of the hos machine's performance.

In the past, my machines have always been dual processor motherboards, and VMware has only emulated single processors. When it is running, one of the CPUs is at 100%, and the other is idle or doing what ever else I am doing on the machine (freecell, cruising the web, reading c.a.f, ...). The latest version of VMware has experimental/beta support for VMs that use both CPUs. I have not tried it.

It is important to have enough memory to support the VM on your system. For example if the VM is setup with 500 MB of memory, and you plan to be doing other work on your system while the VM is running, I would recommend 1Gb or 1.5 Gb of memory for the system.

Philip Freidin

Philip Freidin Fliptronics

Reply to
Philip Freidin

I'm really surpised by people having so much problems running different versions of the Xilinx SW on the same machine. I've only come to use it sinxe the 6.x timeframe, but I have multiple versions running side by side without a problem.

I install to places like: c:\xilinx\ISE_61 c:\xilinx\ISE_71 c:\xilinx\ISE_81

Etc, so there is a different hierarchy for each install

For my windows machines, I simply then have batch files which start the correct version, by definig the XILINXenvironment variable, and calling the executable This works for the EDK too.

like: set XILINX c:\xilinx\ISE_71 set path %XILINX%\bin\nt;%PATH% ise.exe

It also works a treat in my linux machines in a similar way as I use shell scripts to do the same thing. Again, multiple versions co-existing just fine.

One thing, as ISE always attempts to open the last project when it starts, sometimes I find after running 8.1 that 6.1 then would try open that project. But it ususally causes a few "cannot read project" warnings, which you just click through, and then open the project you want.

Hope this helps a few guys out. I'm not sure about migrating the exitsing installs of old versions to a new box, due to licences, but if you can figure that out, give it a try, just copy the entrie directory contents from one of those dinosaur machines, and try what I suggested above to see if it works. Again, I don't know how the pre 6.1 versions will behave. But if its causing SO much trouble, It's worth a shot to see if it works.

John

Jeff Brower wrote:

Reply to
John McGrath

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.