What's currently the best FPGA development board for a beginner? - Page 1
Forum section: electronics / beginners

author: Porama6400
author_rank: Regular Contributor
timestamp: March 08, 2020, 05:05:33 am
content: What's currently the best FPGA development board for a beginner?Preferably one that use manufacturer's programming method and is the closest to one that is use in real application.I would love to learn stuff that can be use in the futureThanks for you advice:)

author: OwO
author_rank: Super Contributor
timestamp: March 08, 2020, 08:05:36 am
content: I started with terasic boards but later on switched to xilinx when I needed to make my own boards. Xilinx parts are much easier to get and perform better (I can easily do DSP pipelines up to >300MHz on the slowest Artix-7 but it takes the fastest speed grade cyclone V to get past ~250MHz).

author: VEGETA
author_rank: Super Contributor
timestamp: July 09, 2020, 09:16:40 am
content: I am also interested in this. My ultimate goal is to be able to replicate some ICs in an FPGA like the retro consoles ICs which replaces disc drives and cartridges. Many products emerged doing this such as GDemu and so on.I liked VHDL and would like to get into FPGA and use the same stuff used on real world, no Arduino or similar easing approaches.My budged can go to say 150$ with some margin xD.No specific manufacturer for me, just the easiest to get into and can be used in the future.I bumped this thread instead of making a new one.

author: tggzzz
author_rank: Super Contributor
timestamp: July 09, 2020, 09:46:20 am
content: Quote from: VEGETA on July 09, 2020, 09:16:40 amTip: don't replicate the ICs. Do replicate what the ICs are doing.Example: if a 74165 shift register is being used as a PRBS to generate white noise, code up the PRBS directly and ignore the parallel loading.

author: rstofer
author_rank: Super Contributor
timestamp: July 09, 2020, 01:46:00 pm
content: In the Xilinx world, the Artix 7 is a common chip and the Arty boards from Digilent are excellent:https://store.digilentinc.com/arty-a7-artix-7-fpga-development-board-for-makers-and-hobbyists/You have a choice: Buy the 35T variant and hope your design fits or pay a LOT more for the 100T variant. Or take a hybrid approach, use the 35T until the designs get too large and then look at the 100T variant.Here is a better board with lots of gadgets and priced similar to the Arty for the 100T variants:https://store.digilentinc.com/nexys-a7-fpga-trainer-board-recommended-for-ece-curriculum/This is my favorite board. I like lots of switches, buttons, LEDs and display digits.If you can find stock, the Lattice Ice40HX1K Stick is a fun board for $50https://www.mouser.com/new/lattice-semiconductor/lattice-icestick-kit/Check over at VHDLwhiz.com. His tutorials are all based on the Lattice board.

author: VEGETA
author_rank: Super Contributor
timestamp: July 09, 2020, 02:39:29 pm
content: QuoteI am looking for smaller than entire game console... something like optical drive emulation or game cartridge emulation which allows me to make some products or circuits that can run the game from an sd card or hdd using original hardware. checkhttps://ps-io.com/for example. I want to be able to make something like this.other examples are: terraonion mode, gdemu, neosd, darksoft neo geo aes cartridge, etc... all of these just emulates a certain portion of the system as you can verify.I want to know how stuff like these gets designed using a small example, this is why I mentioned replicating an IC to see how can I start.QuoteSo I have Xilinx, Altera, and Lattice as choices. I see stuff mentioned above using lattice and altera.. and also Xilinx Spartan 6.I could get something with official tools, not like arduino stuff. that is why i didn't like the mojo board.So right now this is what i came up with thanks to you guys:Arty A7 board.DE-10 Nano boardAny Lattice board that is not a stickwill get back again after researching more.

author: davep238
author_rank: Contributor
timestamp: July 09, 2020, 05:43:28 pm
content: I think that the OP was given a lot of good advice.I have several old Digilent Spartan-3 boards, and I'm thinking of moving up to Artix-7; probably the Arty A7.However, for some of the projects I have in mind, a full development board would be overkill. So I was thinking about the Digilent CMOD-A7-35T for US$89. However, it has very few switches and LEDs so this would not be a good choice for a first dev board. It's has an Artix7-35T FPGA; can be programmed over USB; has 512Kb of static RAM (simpler interface than DRAM); a CMOD port; and is in a 48-pin DIP format so it should be easy to interface to other projects. I've been thinking of getting this because I don't see me building my own BGA board for a few projects.

author: rstofer
author_rank: Super Contributor
timestamp: July 09, 2020, 06:16:12 pm
content: Quote from: VEGETA on July 09, 2020, 02:39:29 pmWhy not a 'stick'. It will come to pass that regardless of which board you buy, it own't be the last. What you need is something to get started.You need to block out your actual requirements. How much logic, how much BlockRAM to emulate cartridge memory. You would probably load a game dataset from SD card to BlockRAM or SRAM. How much memory does the largest game cartridge have? Does the board have that much? How many IO pins will the project take (and double it...) before considering a board. The Lattice 'stick' is seriously lacking in IO.Some wild estimate of the fabric requirement. Write a bunch of VHDL and see what percentage of the resources are used.The Digilent Cmod A7 in the 35T variant has a LOT of BlockRAM (225 kB) that should be more than enough to replace a cartridge. It also has a lot of IO pins but no peripherals. I would hang an SPI type IO Expander or two or three on that PMOD connector and use it for diagnostic widgets. Essentially, build a development board.https://store.digilentinc.com/cmod-a7-breadboardable-artix-7-fpga-module/As I said earlier, you need to spend time clearly defining your requirements. Or, search the Internet and find a similar project to copy. I find that copy-and-paste works well (sometimes).Install Vivado and download/install the Digilent Board Files. Whether you have a board or not, you can write some form of HDL that targets the board.I would skip the Spartan 6 experience. The latest Xilinx tool, Vivado, doesn't support those old chips (it starts with the -7 series) and the older ISE 14.7 toolchain is no longer supported by Xilinx. There is no reason on earth to go back that far!If all you want is gate level logic to mimic 74xx, consider a CPLD.Consider using an ARM CPU like the Teensy 4.1. It is blazing fast with a bunch of memory and easy to work with. It uses a add-on to the Arduino toolchain, primarily for loading code, and there are a number of alternatives.

author: rstofer
author_rank: Super Contributor
timestamp: July 09, 2020, 07:47:36 pm
content: Looking at the CMOD A7 as a pretty much ideal candidate for the OP's project, it is nice when you can find a tutorial that walks through every step:https://reference.digilentinc.com/learn/programmable-logic/tutorials/cmod-a7-programming-guide/startLooking at the features, that's a pretty nice board for embedding in a project.

author: VEGETA
author_rank: Super Contributor
timestamp: July 09, 2020, 09:39:48 pm
content: QuoteI find it better to have a bigger board that I can work with more easily. Bigger boards generally have more features and IO... I didn't say 'stick' in a negative way.Quotedifferent for each console. Neo Geo can be from handful of MBs to 768 MB which is the largest one. Dreamcast has up to 1 GB of size, Playstation 1 is about 200-700 Mb for one disc games, but these disc based stuff maybe doesn't need to be loaded at once since that what the disc is offering. Usually, emulators such as PSIO and GDemu store the game .iso and .bin\.cue files on an sdcard then the fpga system will take the data as needed, exactly as a disc drive.QuoteFor now, I am happy with small stuff as a tutorial to get started. I don't mind having examples to how to replicate a certain IC or its functionality... then I can scale from that. Such projects do not exist online AFAIK. All FPGA tutorials are not as MCU stuff in terms of size or quality, maybe because FPGA is not beginner friendly as Arduino stuff.Quotethis one seems good and it is 89$ but the Artx A7 is bigger for 129$. I can pay 129$ for a fully featured board but it seems to have 35 and 100 options, 100 being 249$.___Someone recommended me this book:https://www.amazon.com/Vhdl-Example-Blaine-Readler/dp/0983497354So I really appreciate if there is a book with nice projects similar to what I aim for... and shows how to start the process of replicating a certain IC functionality rather than just coding tutorials.

author: chickenHeadKnob
author_rank: Super Contributor
timestamp: July 10, 2020, 06:24:28 am
content: Quote from: rstofer on July 09, 2020, 06:16:12 pmI can think of two reasons for a low quantity hobby experimentation. Spartan 6 devices are hella-cheap on LCSC.com (when in stock). I bought 10 xclx9's for $4.90 each.And those parts are still available in hobby friendly 144 pin QFP. Easy board layout, soldering ect. Also QMtech has XCLX16 boards with 32 meg RAM for around $18.However for the original poster I agree with rstofer. better to get a built up edu-oriented board targeting a more current fpga family.

author: rstofer
author_rank: Super Contributor
timestamp: July 10, 2020, 03:08:57 pm
content: It's true that the Spartan 6 chips are cheap and I actually like the 5V Spartan 2 devices but there is a steep climb to working with ISE and almost none of it is shared with the next steep climb of working with Vivado. I can't see making the trip twice.Furthermore, I won't be building FPGA boards. If I need to embed an FPGA, it will be something like the CMOD A7 mounted to headers or soldered direct. I don't have the skill or the patience to deal with high pin packages.As to the Lattice 'stick: VHDLwhiz uses the device extensively and, more to the point, the Lattice toolchain and Modelsim. This site is a really great resource with all kinds of really practical examples, especially test benches. It is worth considering the 'stick just to maintain parity with the site. It's also true that everything he presents can be ported to something that works with Vivado (or any other manufacturer and toolchain). There's just some extra work involved. In any event, check out the site VHDLwhiz.comI guess I'm not interested in the middle ground, I want a fully featured board like the NEXYS A7 or a minimalist board like the CMOD A7,Since the topic is generating logic chips, or their equivalent, it would seem to me that switches, buttons and LEDs would be a primary requirement. Of course, using the simulation tools with a testbench can do a lot of the same thing.All of the HDLs are standardized. Other than factory primitives and special features, VHDL is just VHDL.NandLand is another site that covers FPGA programming quite well.In the end, it's about diving in and writing code.

author: Renate
author_rank: Super Contributor
timestamp: July 11, 2020, 12:13:09 am
content: I bought a Digilent CMOD A7-35 (Xilink Artix 7) about 6 months ago.I looked at the Xilinx Vivado, 15GB! and put it back in the drawer.Just a few days ago I bit the bullet and downloaded Vivado.I wrote my own blinky LEDs from scratch just fine.I find that Vivado is a big pig of software.Doinganythinghas a delay, including just switching edit buffers.The hardware manager makes connection to a device seem like it's contacting Mars.My stupid blinky takes the better part of 5 minutes to do a full build.Ok, my PC has only 4GB, I've got a new one on order.

author: rstofer
author_rank: Super Contributor
timestamp: July 11, 2020, 01:31:43 am
content: Specifically for Vivado, I built a high end Intel I7-7700 with 1 TB SSD and 32GB of very fast memory. Vivado will only use a max of 8 threads so a multi-xeon machine probably isn't helpful.Vivado is a pig but if you throw enough horsepower at it, it runs pretty well.I can remember back a bunch of years where ISE would take 15 minutes to synthesize one of my projects. That was pretty grim.I haven't checked lately but I think my projects synthesize in less than 3 minutes on the new(ish) machine.

author: VEGETA
author_rank: Super Contributor
timestamp: July 11, 2020, 09:18:40 am
content: So my HP pavilion 4 cores Intel i7 7th gen is not gonna be good enough? it has 8 gb of ram and enough disc space with an SSD if it helps vivado.I plan to get a good ryzen desktop in the future, probably waiting until ryzen 4000 desktop is released.. I am looking now at ryzen 3700x as a minimum, maybe ryzen 3900x if i was hating my wallet too much. both with 32gb 3600mhz memory.but for now, the laptop is all there is XDit is kinda weird no one suggested Altera stuff here... either lattice for cheap and easy or xilinx for very powerful fully featured.vivado design software seems the go to one for xilinx, what about lattice? it has 4 official tools... and i don't like to use third party tools in this stuff.

author: filssavi
author_rank: Frequent Contributor
timestamp: July 11, 2020, 10:14:50 am
content: Quote from: VEGETA on July 11, 2020, 09:18:40 amXilinx is the dominant player in the field (60ish % market share) so it is natural it will get advised more.Also It really seems (to me at least) thst intel Did not buy altera to produce and sell FPGAs but for the technology (SSI with foveros, on chip networking) and to a lesser extent for high end Stratix parts in Xeons. And all but left the low and mid end to rotThey even stopped updating the free quartus toolThen there is the abomination that is quartus. If you consider Vivaso slow, buggy or bloated, quartus is at least 5 times as much, (at least the lite version) that does not allow for incremental compilationFor the pc up to recently I was using a old crappy FX8320 with 8 gigs of ddr3 ram, and Vivado run flawlessly, now I upgraded to a 3700X with 16gb of ddr4 3200 and an Nvme SSD (running into Linux) and it is blazing fast ( I fully expect a 3900X to hit diminishing returns)I feel people complaining about vivado are using laptops to do a workstation task (and anyone that says a laptop i7 is the same as a desktop i7 is talking out of his ass)

author: VEGETA
author_rank: Super Contributor
timestamp: July 11, 2020, 11:08:58 am
content: So for now my research resulted into these 2:Arty A7 - Artix-7 (100 version):https://store.digilentinc.com/arty-a7-artix-7-fpga-development-board-for-makers-and-hobbyists/Arty S7 - Spartan-7 (50 version):https://store.digilentinc.com/arty-s7-spartan-7-fpga-board-for-hobbyists-and-makers/both go for 130$ which is ok for me. I guess these 2 uses a free official software (vivado?) so that is ok too.I looked into zynq stuff but it seems too big to handle for a beginner, plus has arm cpu which i didn't work on before.I tried seeing official lattice stuff but got confused, many versions and some of them no longer available. the software is confusing too, like which one is the one to use.If I choose the ones above, are they good for a beginner? is there good amount of projects to do for them? also, any good book to go along (VHDL, no verilog)?QuoteI run my laptop for +15 hours or so a day but not doing workstation jobs on it... barely kicad. most of the time just youtube and league of legends..etcbut i really need an upgrade with nice quality stuff like ryzen 3700x with its mighty 8 cores. I am just waiting on 4000 desktop cpus to get released. I really miss the days when Playstation 2 was considered above the level of consumer PCs... that is, unfortunately, not gonna return ever!_______Spartan 7 doesn't seem to have tutorials on youtube... if Arty 7 is as easy as Spartan 7, then why not just get it?

author: rstofer
author_rank: Super Contributor
timestamp: July 11, 2020, 02:27:27 pm
content: Quote from: VEGETA on July 11, 2020, 11:08:58 amI would have thought the 100T version was a bit out of your price range as it costs $249. If it is a serious candidate, consider the more fully featured Nexys A7 100T which is only $20 morehttps://store.digilentinc.com/nexys-a7-fpga-trainer-board-recommended-for-ece-curriculum/QuoteIt might be worth spending time with the 7 Series Family datasheet to find out the differences between the Spartan and the Artix. I'm going to favor the Artixhttps://www.xilinx.com/support/documentation/data_sheets/ds180_7Series_Overview.pdfYes, the 7 series use Vivado.QuoteSure, any of the above will be fine for entry level. I tend to prefer having more gadgets like LEDs and such but that's just a choice. Projects are available at OpenCores.org but a lot of folks seem leery. I have downloaded a good UART core and the T80 core (Z80 equivalent) is known to work very well. I use it for CP/M and PacMan on older Spartan 2 and 3 devices.QuoteI don't see the purpose of the Spartan unless it is price. The Artix seems more fully featured and is further to the right in the Family table.The Arduino was designed to allow artists, not just engineers, create animations. As such, there is a lot of hand-holding. That is not the case in the digital design world of FPGAs; you're pretty much on your own. I have pointed you to VHDLwhiz.com and NANDland and if you really want to learn the topic, subscribe to the FPGA and VHDL Fast Track program at VHDLwhiz when it opens up in the fall. Yes, it costs money. There is a Beginners Fast Track course that costs a few bucks but is definitely worth it. I did both courses plus several of the free tutorials because while I have no problem creating synthesizable code, I had never spent time with the simulator. Writing good test benches is every bit as complex as creating entities.VHDLwhiz uses the Lattice 'stick but that isn't required. He also uses Visual Studio Code for the editor along with the Lattice tools. The editor makes it easy to have two documents open, side by side, like an entity and its test bench. This is a terrific use of the editor. Vivado can work with an external editor (at a minimum, it will detect modified files) but I haven't used the internal editor in any more than its most basic form. I need to research this more after seeing what I can do with Visual Studio Code. VSC will also keep track of your project files. The two document display works well on a 27" monitor. I wouldn't use it on a 17" laptop screen but I'm old with dubious eyesight.Right out of the gate, plan to spend a LOT of time at VHDLwhiz.com.

author: filssavi
author_rank: Frequent Contributor
timestamp: July 11, 2020, 03:13:04 pm
content: While not apparent at the beginning the spartan 7 makes a huge amount of sense to me, not as a standalone device (you can get much better value out of a lattice part then), but as part of a larger system.In any sort of distributed, real time, control system, like you find in high power converters (lets say 1MVA and upwards) you will have a central controller that regulates the overall output and makes shure power sharing is done correctly while the power hardware cells run the local current loop and modulation. For safety and ease of implementation reasons (the complex modulations required in those type of converters are quite hard to do on a regular MCU advanced timer, and communications need to be done with custom protocols). FPGAs are used in both places.Now while we are not talking about massively price sensitive systems, we are also not talking about military budgets here, so anything saved on the logic side can be put to better use on the power side (I will take more switches in parallel to lower losses over big fpga any day of the week), since there is no need to use the same big(ish) FPGA the controller is running also on the cells, where a much smaller and simpler fpga can be used, with associated cost reduction.As to why go for the spartan7 instead of a lattice (ice40 of some description) it is down to ease of development and manteinance, since you need to worry only about one toolchain, instead of 2, especially with the lattice one being not that great (it is usable, however nothing spectacular). Also since it is the same architecture validation can be done once, and not have to be repeated for both systems.

author: VEGETA
author_rank: Super Contributor
timestamp: July 11, 2020, 03:55:19 pm
content: QuoteMy mistake, I thought it is the same price as my browser didn't update due to bad internet... now everything is clear.Quoteyes artix is better overall, but the things i would like to do is doable in cyclone 3 and 6. so spartan 7 is supposed to be more than enough. Plus the price for it is about half of artix right?I saw the artix as objectively better + has tutorials...Quotedoes it have a totally free package that does everything? or should I pay a lot?QuoteI still prefer using manufacturer's official tools if they are good enough. I saw his 17$ course which I will definitely take in the future but I wonder if it is gonna be easy to use other fpga tools and IC for the course.any book recommendation? or is it not necessary?Quotepeople whine too much about lattice and how spartan 6 and 7 is better replacement._____So for now the spartan 7 99$ board is the one to buy.

author: rstofer
author_rank: Super Contributor
timestamp: July 11, 2020, 04:28:58 pm
content: Quote from: VEGETA on July 11, 2020, 03:55:19 pmYes, the 7 series use Vivado.QuoteYes, Vivado is a complete development platform for everything that Xilinx offers from 7 Series forward. Apparently, Xilinx spent $200 million to develop it. And they already had ISE but didn't see a way forward. It's going to be with us for a long time to come.https://en.wikipedia.org/wiki/Xilinx_VivadoTotally free! Go ahead and download it, you don't need a board to play with writing code and running the simulator. Just learning your way around the interface is going to take a lot of time. Hopefully there are videos...QuoteNo reason not to! I just ran across Visual Studio Code in the VHDLwhiz projects and it's pretty slick. It is a heck of a lot better than the editor in the Lattice toolchain. Notice that VHDLwhiz uses VSC to edit, Lattice ICEcube2 to compile, Lattice Diamond to program the device and ModelSim as the simulator. All of this is in one program if you use something like Vivado.You could install the software today and have a simulated gate level project running under simulation in an afternoon,Here is a short video on creating and simulating an AND gate. It's only a few minutes long and assumes you have seen the previous videos on working in the IDE but I didn't search for those. There are hundreds of tutorials.Three steps:Install VivadoInstall Digilent Board FilesCreate a project and select one of the Digilent boards (don't just select a chip, notice the Boards tab in New Project -> Default Part window)Now start writing the 2 files necessary for the simple AND gate simulation.You can design and validate entire projects and never actually own a board.

author: rstofer
author_rank: Super Contributor
timestamp: July 12, 2020, 03:17:26 pm
content: If you decide to go down the Xilinx route with Digilent, take advantage of the various tutorials at Digilent. Everything you need to get started with Vivado is there and really well spelled out. There will be a link to Resources for each board, over on the right of the page.In terms of Vivado being a pig, it will process a 1700 line project from edit changes through bitstream out in 2 minutes 45 seconds on my 4.2 GHz I7-7700 with 4 cores and 8 threads along with a SSD and 32GB of 4133 MHz RAM.I'm ok with this level of performance and it's only because my device is massively larger than the project that the place and route can be done quickly (relatively).I chased the trail down the rabbit hole for the Nexys A7 and on this page are some tutorials about getting started with Vivado along with some example projects:https://reference.digilentinc.com/reference/programmable-logic/nexys-a7/startYou can do the same thing for other boards.

author: VEGETA
author_rank: Super Contributor
timestamp: July 12, 2020, 06:06:46 pm
content: QuoteVSC seems popular but as you said, Vivado has everything in it in one package free and official from manufacturer.. this is the way to go.QuoteYes I think those are the .vhd main code and the test bench which I still need to understand.I hope to find a simple emulation project to see how to emulate a simple ic or hardware in an fpga, like how to start and so on..QuoteSpartan 7 seems to have 4 projects in "Example Projects" here:https://reference.digilentinc.com/reference/programmable-logic/arty-s7/startQuoteSo is it mainly the CPU or RAM? your CPU seems mediocre or even less but RAM seems over-the-top! My plan was to get 3600 MHz 32gb RAM (dual 16) as I didn't find faster memory to be available or affordable (diminishing returns too).Right now my laptop is all there is (intel i7 7th gen 4 cores - 8 gb ram)... I plan to get ryzen 3700x (or its 4000 desktop brother if it happened), I think it will be enough to be very fast right?

author: rstofer
author_rank: Super Contributor
timestamp: July 12, 2020, 07:26:56 pm
content: Quote from: VEGETA on July 12, 2020, 06:06:46 pmI don't know where the slowdown is on my desktop but I have a feeling it is simply compute cycles.On my HP laptop (1.9 GHz I7-8550U with 12GB available ram, the same job takes exactly 5 minutes (versus 2:45 on my desktop). That exceeds my attention span so I don't do much Vivado stuff on my laptop.

author: rstofer
author_rank: Super Contributor
timestamp: July 12, 2020, 09:23:05 pm
content: You could start here and follow along. He is going to install the Lattice tools and ModelSim. There's no reason you couldn't just substitute Vivado for the entire program of tutorials.https://vhdlwhiz.com/basic-vhdl-tutorials/The primary focus is simulation, not synthesis. That comes up later. None of the test benches will synthesize (by definition) but the entity files should and you could connect the inputs and outputs to pins through the .xdc file. I would change the name in the .xds file rather than use the not-very-helpful names in the .xdc file. Early on, you would only be uncommenting a very few signals and perhaps the reset and clock signals.This FPGA stuff is a stretch unless you have spent a lot of time on digital design in school. The good news is that the concepts are serially reusable. Once you know how to code a MUX, every other MUX looks similar. In fact, if you make the MUX with 'generics' for width and depth, you can just reuse the same file in every project including multiple instances within a project.It's the same for all the other constructs: counters, Finite State Machines, adders, registers and so on. Once you have gotten an LED to blink, you are truly on your way. The reason for the optimism: The toolchain works, the device can be programmed, you have dealt with the clock input and perhaps reset. A vast array of things have to work right to get that LED blinking. After that, it's more of the same plus FSMs.Here is a testbench very similar to the one at VHDLwhiz.com. I just changed the entity name which must match the file name (HelloWorld_tb.vhd). So, create a new project in Vivado then create a simulation source file (empty) and then copy-and paste the code into the file with the editor. Then run simulation. The "Hello World" string will be in the TCL console, 5 lines from the bottom of the output. It is unlikely to be visible given the small window size allocated to the console.Code:[font=courier]entity HelloWorld_tb isend entity;architecture sim of HelloWorld_tb isbeginprocess isbeginreport "Hello World!";wait;end process;end architecture;I just ran this testbench in Vivado so I'm pretty confident it works. If you get it working under Vivado then there is probably no reason to install Lattice, Diamond and ModelSim.Not that it mattered but I selected the Nexys A7 board. As this is only a testbench, I didn't add an .xdc file.You will find that the simulator doesn't really stop running on that wait statement. Instead, it 'waits' forever. There are ways to kill the process with an assert statement but it isn't necessary at this point.

author: VEGETA
author_rank: Super Contributor
timestamp: July 15, 2020, 07:57:41 am
content: I've seen the Pmod stuff:https://store.digilentinc.com/pmod-expansion-modules/pmod-boards/which ones are good to have? I myself saw the sdcard and vga to be good to have... while there are also "Pmod packs" for each board such as this one for Spartan 7:https://store.digilentinc.com/artys7-pmod-pack/

author: Renate
author_rank: Super Contributor
timestamp: July 15, 2020, 12:10:00 pm
content: Yeah, there are a lot of PMOD modules.The ones that hit my eye were the I²S audio module and the VGA module.But the VGA module takes two PMOD slots and I have a CMOD A7 with only one PMOD.So I'll perfboard (and maybe later PCB) a single PMOD module that only uses 8 colors (single bit).I'm using an old VGA cable that I cut off a wonky end.

author: VEGETA
author_rank: Super Contributor
timestamp: July 15, 2020, 07:36:33 pm
content: Now I am trying to download vivado and I get this (I am signed in):QuoteMaybe I should wait for 24 hours or so? I listed all info but company name I put "Thundertronics" which is my youtube channel, and my personal gmail email.

author: rstofer
author_rank: Super Contributor
timestamp: July 16, 2020, 01:03:16 am
content: It appears there are export restrictions applied to your country.

author: VEGETA
author_rank: Super Contributor
timestamp: July 16, 2020, 05:22:11 am
content: Quote from: rstofer on July 16, 2020, 01:03:16 amI am in Jordan and we never suffered any of these stuff. So now what to do?

author: rstofer
author_rank: Super Contributor
timestamp: July 16, 2020, 06:23:23 am
content: Quote from: VEGETA on July 16, 2020, 05:22:11 amhttps://www.xilinx.com/support/answers/44043.html

author: VEGETA
author_rank: Super Contributor
timestamp: July 16, 2020, 06:40:34 am
content: Quote from: rstofer on July 16, 2020, 06:23:23 amSo I need to clear cache and try again? I used chrome to do it which doesn't have any sign in for xilinx and still didn't work. I will try to send them an email... this thing is so annoying! why not just download the thing without the need to sign in? I assure you, no rockets are in my plans xD

author: Renate
author_rank: Super Contributor
timestamp: July 16, 2020, 11:35:13 am
content: Quote from: VEGETA on July 16, 2020, 06:40:34 amMaybe the same people who wrote Vivado did the website?Unrelated rant:Being old school one of the criteria I have for judging a programming platform is to see how many files a "Hello world!" project generates.For my cheesy blinky LED Vivado generates 240 files with 45 different file extensions.

author: VEGETA
author_rank: Super Contributor
timestamp: July 16, 2020, 12:11:34 pm
content: Quotehhh I know, but some frustration generates anger... in another placeQuoteI kinda agree with you but it is the official tool and people report it is great... but damn, +15 gb or so, I do have space for it though.I like official tools like in PIC MCUs... pickit3 + mplab x.I have sent an email and will wait and see.

author: Renate
author_rank: Super Contributor
timestamp: July 16, 2020, 01:18:53 pm
content: Quote from: VEGETA on July 16, 2020, 12:11:34 pmExpanded onto the disk it's more like 30GB.With my old PC with 4GB memory it was almost unusable.As a minimum you will need 8GB for small projects and 16GB for large projects.

author: VEGETA
author_rank: Super Contributor
timestamp: July 16, 2020, 07:07:31 pm
content: I have about 120gb of free ssd space on C, and about 450gb free hdd space on D.My issue now is just downloading the thing. Can't someone download the web installer and send it to me? upload it on say mega.nz, dropbox or any site, then I download using my account.

author: rstofer
author_rank: Super Contributor
timestamp: July 17, 2020, 02:08:07 pm
content: Quote from: VEGETA on July 16, 2020, 07:07:31 pmAnd get crossed up with the Feds? Not one chance in the world!Wait and see what Xilinx says. The web site didn't say it was impossible but that they had to have some time to check it out. With the CV-19 stuff, many positions are vacant and things are taking longer.

author: VEGETA
author_rank: Super Contributor
timestamp: July 17, 2020, 04:06:08 pm
content: QuoteLooks like downloads are signed or something... ok I will wait until they respond to emails.Till now I decided on Spartan 7 board with some extensions. I wonder if this one can interface to good speed RAM, flash memory, sd cards...etc easily. Their IP config thing does not seem to include this particular family.Ultimate goal is to have functionality like getting certain data from HDD\SD card then put it into RAM\ROM to use it or deliver it to the game console system. This seems so hard to do for my level now so I wanted to ask if people have experience doing such things or parts of it... how and what are the requirements? is say 1 year of practice will get me to this level?I guess I will start with this one:https://www.amazon.com/Vhdl-Example-Blaine-Readler/dp/0983497354

author: rstofer
author_rank: Super Contributor
timestamp: July 17, 2020, 04:47:00 pm
content: A year is a long time so you can come quite far. It's all about practice. You get good at writing code by a) reading other people's code (including books) and b) writing your own code and then re-writing it when you see a better way.I know there is a lot of interest in SD cards but the FPGA end can be quite complex due to speed changes during initialization. I have had great success using Compact Flash devices as they have a standard ATA parallel interface. It takes a lot of pins but it can be pretty fast.https://www.delkin.com/blog/technical-guide-compactflash-cf-secure-digital-sd-cards/

author: VEGETA
author_rank: Super Contributor
timestamp: July 17, 2020, 04:58:44 pm
content: Quote from: rstofer on July 17, 2020, 04:47:00 pmYes I will do the required effort, that is for sure.The types of projects that I aim for is to replace the disc-drive or cartridge of retro game consoles by a board which takes game data from sd card or hdd. Say a Neo Geo AES game cartridge or DreamCast GD-ROM.The system should have an FPGA to emulate whatever is necessary... get the game data (.iso, .bin\.cue, .zip...etc) from an HDD or SDcard, then either directly deliver the data to the game console or store that data in a ROM\RAM then delivers it to the game console. That is the thing I aim for. Of course stuff like GUI and so on is not the main topic.One certain project to do that is GD-EMU which got cloned for 35$ or so on aliexpress. it replaces dreamcast gd-rom and allows you to use an sdcard instead.I wonder how can I start to know what to do to achieve these stuff? like, read the ic datasheet then try to make VHDL entities to do the same?more better projects have hdd support like terraonion MODE. so we got an fpga + ARM mcu + hdd\sdcard stuff all connected together.this is the level I want to achieve and I can dedicate daily time for it... what do you think I should do?thanks for your continuous cooperation in this thread!

author: Renate
author_rank: Super Contributor
timestamp: July 17, 2020, 06:30:53 pm
content: With FPGAs there is a lot of potential to do useful things.Still, both Verilog & VHDL harken back to the 1980's and are inherently ugly.Add to this all the cruft that the manufacturers have jerry-rigged in to make this all work and you'd best hold your nose when coding.I added a single PLL, X MHz in, Y MHz out. The amount of cruft increased by 0.5 Meg.They can't even be bothered to format their templates.Hmm, 5 empty lines in this template. Who got to decide if it were 4 or 5 empty lines?Ok, in Unix EOL that's only a few chars.But a general lack of care and pride makes one wonder how they do routing and layout and things that do really matter.It took me a bit of time to figure out that the instance name in a parameterized module doesn't go in the front.Code:frobulator main_frobulator(a, b, c);eviscerator #(.PEOPLE(1)) aux_eviscerator(d, e, f)

author: Renate
author_rank: Super Contributor
timestamp: July 18, 2020, 03:33:31 am
content: So, here's another thing:I bought my Digilent CMOD A7 from DigiKey.Since I started out using it, it has always been flakey on the USB, disconnecting at random.It drives the Vivado Hardware Manager crazy.Well, it turns out that this is a well-known problem.The folks at Digilent have been stonewalling for years, blaming cables despite people trying all sorts of cables/hubs/computers.Apparently, if you complain enough they'll replace it.There is also somewhat of a fix by adding a capacitor.All of this pops up at a simple CMOD A7 USB problems search.I just did the mod and the problems seem to be gone.

author: tggzzz
author_rank: Super Contributor
timestamp: July 18, 2020, 08:00:11 am
content: Quote from: Renate on July 17, 2020, 06:30:53 pmSince you are discussingonemanufacturer'stool(i.e. not the language nor hardware), it would be helpful to specify which tool.

author: Renate
author_rank: Super Contributor
timestamp: July 18, 2020, 11:55:59 am
content: Quote from: tggzzz on July 18, 2020, 08:00:11 amSorry, I was speaking of Xilinx Vivado 2020.1As for the CMOD A7:I took out the diode and bypassed it.I'm not particularly recommending this because it will affect things if you want to externally power it.Still, things worked a lot better that way even before I put in the capacitor.Now that I've got the capacitor in, it's solid.The thing is, this is not rocket science.It's an FTDI FT2232HQ JTAG/UARTIt supposed to be able to maintain a solid USB connection.It has nothing to do with Xilinx chip programming/booting as far as the USB connection goes.I should have investigated this earlier when I was experiencing trouble getting the UART to work solid.I did see that it was flailing/failing USB high speed negotiation.

author: VEGETA
author_rank: Super Contributor
timestamp: July 18, 2020, 03:24:31 pm
content: I still didn't receive any update from Xilinx, do they take this long usually?As for books to get, right now this is my primary choice:VHDL by exampleit is about 120 pages, so maybe this is the best start for a beginner.I saw this interesting one too:Circuit design with VHDL, 3rd editionSeems popular and this is a new edition, I always like new editions for textbooks.Also, this one seems interesting and big:FPGA Prototyping by VHDL Examples: Xilinx Spartan-3 VersionIt uses Spartan 3 but I will get Spartan 7... still could be a better choice than thisnewer version. The new version focuses on MicroBlaze soft core but I am not interested in soft cores now.What do you guys think? anyone tried any of these books?I wish Xilinx guys respond soon so I can install Vivado and test some basic code.

author: rstofer
author_rank: Super Contributor
timestamp: July 18, 2020, 04:44:34 pm
content: When you get down to it, all you need to know is how to code various standard blocks. A MUX, counter, adder, flops, registers, register sets, dual port BlockRAM, and a Finite State Machine and you pretty much have it under control. Literally everything derives from the FSM because most digital systems retain some form of state. Otherwise, they would just be combinatorial logic which you also need to understand.Then start writing!Here's a free book that gets discussed from time to time:http://freerangefactory.org/pdf/df344hdh4h8kjfh3500ft2/free_range_vhdl.pdfThere are other vendors besides Xilinx. Try to download the Lattice toolchain (IceCube2 and Diamond. See if you can license ModelSim. Maybe try Altera/Intel Quartus tools. See if you get different results. If you can download Lattice, well, somebody is making a mistake. Either Xilinx is too restrictive or Lattice is too liberal. It's really about interpretations.FreeBSD (BSD Unix) could not be exported from the US because it contained a certain type of encryption. So, the development of FreeBSD is done in Canada where there is no restriction on export. Just an example of how goofy these things can get. There's no issue about importing FreeBSD into the US but it can't be exported.The only way I learn this stuff is to have a project in mind. A goal I plan to achieve, perhaps a CPU or some other system. Just coding blocks of logic, in isolation, just isn't enough to keep my interest. Fortunately, such a project was in mind before I created my first blinking LED. I went from LED to implementing the T80 core (Z80) with CP/M by just hanging a Compact Flash drive on the core to creating a complete retro computer system in just that many steps. Crawl, walk, run! Dream up a sufficiently broad project and create it as a learning project.Don't forget the free tutorials at VHDLwhiz.com and NandLand.com

author: Renate
author_rank: Super Contributor
timestamp: July 19, 2020, 02:20:02 am
content: For a fun 8 color VGA you don't need any active parts.The PMOD connector has inline 200 ohm resistors, so that won't suit us.You have to use the regular digital outputs.I made a little board with a chopped-off VGA cable.The RGB are 0.7V signals so they need resistor dividers, 160 ohm in series and 130 ohm to ground.This gives you the right level and the right source impedance.The two sync signals are TTL, just feed them straight.You don't need to use the SDA or SCL signals.The board is inserted by the only ground pin, #25.(The six resistors are 0805 SMD on the bottom of the board.)

author: VEGETA
author_rank: Super Contributor
timestamp: July 19, 2020, 06:45:51 am
content: QuoteI will try the free book you mentioned with other books to get as much knowledge as possible.QuoteI plan to buy kits next month or so, thus I can wait for Xilinx to wake up. If not, then I go with Lattice using the icestick used with vhdlwhiz course. I found it on Mouser along with many Pmod boards. Total price is about 80$ with free Fedex shipping.There is the Go board too but the stick seems better choice now... if Xilinx didn't respond.QuoteI told you above my ultimate goal but it is kinda too far now. Thus, I wanted books or courses to have projects that one can do. Different levels that get bigger by time, so I can test myself as I go in.QuoteHow much time did it take? from being an absolute beginner to making the cpu on an fpga. Did you use the free book to get started then just practiced?QuoteI will get a vga pmod breakout board if I bought Xilinx or Lattice part, so I will be using it.I think such a project exists for VGA right?

author: Renate
author_rank: Super Contributor
timestamp: July 19, 2020, 12:53:23 pm
content: Quote from: VEGETA on July 19, 2020, 06:45:51 amOk, but the Digilent VGA breakout uses two PMOD connectors so you can't use that on a gum stick (CMOD A7).Hey, I just checked! You could use that PMOD breakout on a single PMOD port.Except that the way they laid it out you could only have 4 bit green and no red or blue.Still, that would work for proof of concept or retro.https://reference.digilentinc.com/reference/pmod/pmodvga/startI'm currently running color bars on 1280x1024...

author: VEGETA
author_rank: Super Contributor
timestamp: July 20, 2020, 07:00:28 am
content: I got the reply from Xilinx and they say that my country Jordan belong to D or E countries which are banned for some reason, and they cannot lift the ban on my account. It is really bad to judge people like this for no reason, but nothing can be done.I did send a reply email though, so maybe it had a 1% chance of success.So right now, and foreseeable future, I will get Lattice IceStick and follow VHDLWhiz stuff. I will still aim to get into Xilinx in the future especially if I had a product to go into market.Does Lattice have equivalent of Spartan 7 or Artix 7 chips?

author: OwO
author_rank: Super Contributor
timestamp: July 20, 2020, 07:10:31 am
content: Get a VPN, reset your browser profile (or better, reinstall/install a new browser), create a new account, go to google maps and pick a random street in Toronto Canada and use that as your address.

author: VEGETA
author_rank: Super Contributor
timestamp: July 20, 2020, 07:15:21 am
content: Quote from: OwO on July 20, 2020, 07:10:31 amHmmm this could work if they don't require extra stuff. I will test this today.I will create a new gmail email just for xilinx, will get a new web browser rather than my firefox and chrome, and will test it with a free vpn.However, will this affect anything I am going to do in the future? like getting updates and so on?regards,EDIT: ProtonVPN free service only has US, Japan, and Netherlands. US should work right? Also, will I need the VPN just to download the web installer or should it go to full installation? what about updates?

author: OwO
author_rank: Super Contributor
timestamp: July 20, 2020, 09:32:55 am
content: All 3 countries will work. The address does not need to match the IP location. Use the VPN for the whole installation, and after that block all internet access to vivado using windows firewall or iptables on Linux. Vivado is always manually updated.

author: OwO
author_rank: Super Contributor
timestamp: July 20, 2020, 09:38:42 am
content: Btw category D and E countries is probably just an excuse.https://www.bis.doc.gov/index.php/documents/regulation-docs/2255-supplement-no-1-to-part-740-country-groups-1/fileChina is in country group D, same as Jordan, and has all the restrictions that Jordan has plus some more, but I had no problems downloading Vivado and didn't need the VPN. They also had no issues approving my barcode lookup access request.

author: VEGETA
author_rank: Super Contributor
timestamp: July 20, 2020, 10:14:19 am
content: Quote from: OwO on July 20, 2020, 09:32:55 amHmm so I need to download 35gb or so using vpn, I hope it is fast enough as I don't want to pay for one right now.why would I need to disable internet access for vivado? is it because of they checking regularly?So when I want to update it, I should hook up the vpn... what if I did that using the regular internet without vpn?I didn't really need any vpn in my life so this is all new to me.QuoteWeird! why would they do that? no reason at all. I mean I get it that US takes China as their enemy and thus block it or so, but no Jordan. What happened is the opposite xD.They stopped responding to my emails.

author: VEGETA
author_rank: Super Contributor
timestamp: July 20, 2020, 10:41:43 am
content: Quote from: blueskull on July 20, 2020, 10:29:03 amBut the tool is free to download and use, and even if I want to buy it, they will gain money. No costly support is needed.so yeah it is an excuse as you said.

author: VEGETA
author_rank: Super Contributor
timestamp: July 20, 2020, 12:26:38 pm
content: Quote from: blueskull on July 20, 2020, 10:45:45 amit is as you said but their forums are free and their emails are open to anyone.anyway, let's see what happens tonight.People don't like lattice tools for some reasons too, no one is perfect.

author: VEGETA
author_rank: Super Contributor
timestamp: July 20, 2020, 09:56:07 pm
content: Well, I found a setup file 2019 version of Vivado on a torrent website that I will download (21 GB). Then we'll see if it can update properly without VPN.

author: rstofer
author_rank: Super Contributor
timestamp: July 20, 2020, 11:26:27 pm
content: There's still one more potential "gotcha", maybe two...When you use the free WebPack version of Vivado (and the older ISE), you automatically sign up for WebTalk which is some kind of telemetry system that provides feedback to Xilinx. It is mandatory with the WebPack installation.I don't know if Xilinx looks at the IP address used by WebTalk to figure which country it is coming from.Another hurdle: Even though you have the installation image, you still have to apply for a license which they will send by email. To get the license, you need a valid email address and, of course, an account with Xilinx.

author: rstofer
author_rank: Super Contributor
timestamp: July 20, 2020, 11:43:13 pm
content: Quote from: OwO on July 20, 2020, 09:32:55 amWhat about WebTalk? It seems to me that Vivado (and ISE) require an Internet connection for the WebPack versions. I ran an experiment on Vivado and it seems to work fine without an Internet connection but this seems to defeat Xilinx's plans for WebTalk. I don't know if it does a couple of builds and then complains or what.

author: VEGETA
author_rank: Super Contributor
timestamp: July 20, 2020, 11:46:42 pm
content: Quote from: rstofer on July 20, 2020, 11:26:27 pmWell, I reverted back to the VPN plan and it worked! now I am a Canadian living in Toronto thanks to ProtonVPN one week of free trial, regular version only has US, Japan, and Holland.Now it is downloading, it will take 15 GBs of download, then about 30 or so disc space.QuoteI have new gmail (similar name to my old one) and new Xilinx account with Canadian data that I got the web setup from.All I want is to be able to use the software, so I won't be using a VPN after this is finished. I don't think they will go so far right? I mean in these D or B countries there are thousands and thousands of users already... before these restrictions.I just hope I can update without hurdles of using a VPN... and of course using the software just like another normal software.QuoteYou are welcome to try and give us feedback. But since you tried it once, I assume it is going to work all the time.it kinda defeats their purpose but God knows what exactly do they want from all this. I mean how can they monitor the data of tens of thousands of users?we'll test and see.hearing that you disabled internet and still got the same functionality is a big plus. I just hope future updates are the same.

author: VEGETA
author_rank: Super Contributor
timestamp: July 21, 2020, 06:11:12 pm
content: I finished installing it and it works without VPN. Also, I disabled Web talk option and still work even without it... is that safe?

author: rstofer
author_rank: Super Contributor
timestamp: July 21, 2020, 06:28:53 pm
content: Quote from: VEGETA on July 21, 2020, 06:11:12 pmYou were able to get a license? Or did you get it to run without the license file?Did you actually generate the output bit file for a board?

author: VEGETA
author_rank: Super Contributor
timestamp: July 21, 2020, 06:32:29 pm
content: Quote from: rstofer on July 21, 2020, 06:28:53 pmI opened it and it opened... I could write stuff and open example files..etcdidn't try anything else.how will i get a license?

author: VEGETA
author_rank: Super Contributor
timestamp: July 21, 2020, 06:54:03 pm
content: I turned the VPN on and went into the licensing page to get a license and I got this:I sent them an email from the Canadian email...any clue?

author: VEGETA
author_rank: Super Contributor
timestamp: July 21, 2020, 07:04:29 pm
content: I tried this test bench mentioned previously:Quoteand got this:I can save and run simulation as you can see, but it mentioned an error due to no wave or something. I am still not familiar with vivado.

author: Renate
author_rank: Super Contributor
timestamp: July 22, 2020, 12:07:01 am
content: Quote from: VEGETA on July 21, 2020, 07:04:29 pmThat's right, all you have is a print statement, no real signals.Try a real example.

author: rstofer
author_rank: Super Contributor
timestamp: July 22, 2020, 01:10:58 am
content: Try this by modifying inside the entity or create one not named HelloWorld:Code:library ieee;use ieee.std_logic_1164.all;use std.env.finish;entity HelloWorld_tb isend entity;architecture sim of HelloWorld_tb isconstant num_cycles : integer := 320;signal clock : std_logic := '1';beginprocessbeginfor i in 1 to num_cycles loopclock <= not clock;wait for 5 ns;clock <= not clock;wait for 5 ns;end loop;end process;end architecture;When you first run this the output graph will cover just a few picoseconds. However, there will appear a couple of text boxes in the title bar where you can change the time to 5 us.

author: VEGETA
author_rank: Super Contributor
timestamp: July 22, 2020, 06:05:55 am
content: I will try that today.However, do you think I am ok using vivado like this? I mentioned they disabled my new account that I downloaded vivado with.All I hope is that this vivado install is enough to use and program Spartan 7 and Artix 7 boards and chips without hassle. I kinda feel the software is gonna be disabled in 30 days or so hhhh... just blind faith feeling though.On the other hand, I might get lattice icecube as a starting kit with pmods mentioned above, all for 90$ from mouser with surprisingly 0$ fedex shipping to Jordan. Then, I will get spartan 7 board.BTW here is some hdl code about neo geo cartridge emulation:https://github.com/neogeodev/SNKVerilog/do you, as experienced users, understand this code? how long and how much knowledge needed to be able to write one similar to it? you can find other parts in the same master branch.

author: rstofer
author_rank: Super Contributor
timestamp: July 22, 2020, 02:24:07 pm
content: I am amazed that Vivado has worked this far. I simply can't believe that you can continue with synthesis through bit-file generation without a license and it doesn't look like that's going to happen.I certainly wouldn't spend money on Xilinx hardware until I was absolutely certain that Vivado was working and I seriously doubt that it will.Here is a Verilog project that creates a blinking LED including simulation and synthesis through bit file generation. It assumes you have downloaded the Digilent board files. Just choose the Nexys4 DDR board when you create the new project as instructed. It doesn't matter which board you pick until you get to modifying the constraints file.Don't worry about the Verilog versus VHDL thing because you will need both languages eventually.Again, I will be amazed if you can get the bit file generated without a license.

author: rstofer
author_rank: Super Contributor
timestamp: July 22, 2020, 02:50:47 pm
content: In looking at the code linked above, all I see is interface files. I don't know enough about the project to truly understand what the code is supposed to do but it references a Z80 processor but doesn't create one so it seems like all of this stuff is just glue logic around the outside of a physical Z80.If I'm even close to right, you would need to know about the Z80 interface requirements and you would need to know what is supposed to happen in the machine. All of the files seem pretty small so it can't be too complicated. Estimating how long it might take to learn enough to write that code is nearly impossible. My background in college and grad school was digital design. True it was a LONG time ago ('76) but digital design itself hasn't really changed. Just the manner in which it is created. The point is, it might be easier for someone with a strong background in digital design to pick up the necessary skills.These days, designs are just a matter of wiring together some components that are likely built using previous code as a template. You need to know how to create signals, registers, multiplexers, adders, memory blocks (initialized, of course) and Finite State Machines. All of this is learnable in a couple of months. It's the tying together that requires time to learn. The only way to learn is to draw block diagrams and transition diagrams and then write the code. There is help all over the Internet.Want a graduate project in VHDL coding? Try to build the LC3 project from scratch. It's only about 1700 lines of code over 14 files (my design) and follows the given transition diagram exactly right up through state numbers.https://justinmeiners.github.io/lc3-vm/supplies/lc3-isa.pdfhttps://www.cs.auckland.ac.nz/courses/compsci210s2c/resources/PattPatelAppB.pdfhttp://people.cs.georgetown.edu/~squier/Teaching/HardwareFundamentals/LC3-trunk/docs/LC3-uArch-PPappendC.pdfhttps://www.seas.upenn.edu/~cit595/cit595s10/lectures/d&c.pdfIt's hard to recommend buying the book now that it has become an overpriced cult classic. Maybe the eTextbook version is adequate. I don't tend to like eBooks but for the money, I could decide to like them.https://www.amazon.com/Introduction-Computing-Systems-Gates-Beyond-ebook-dp-B07VWKMJBXWhen you can write the code for this, you will have a much deeper understanding of what is going on with CPUs. At least simple versions of RISC machines.Start at VHDLwhiz. I was there just yesterday working through his RC Servo tutorial. The VHDL code worked exactly as given and the only complication was getting the constraints file set to match the VHDL. Even so, it's only a matter of uncommenting 4 lines and changing the signal names to match the VHDL.I hadn''t spent a lot of time with compile time calculations and this project is loaded with it. Worth learning! It includes a test bench. When you simulate, make sure the test bench file is the top module. Somewhere around 14 or 15 minutes into the video I linked above, the author shows how to do this. Right click on the simulation testbench file and "set as top"...

author: VEGETA
author_rank: Super Contributor
timestamp: July 22, 2020, 03:47:28 pm
content: Quotelicense manager is empty but it has an option to show free built-in licenses, and they are a lot. I don't know if it is going to continue or not.Quoteexactly. I am really disappointed that top fpga manufacturer behaves like this.QuoteI will try this soon.BTW, what should Vivado do without a license? I mean why letting people download it then never give them licenses? The support guy told me on my original email that I cannot use it now and if I got a board from a supplier, that supplier should solve this issue for me. which is nothing short of stupid.I told him why bother putting your freaking boards in the hands of people then prevent them from using it?? no answer was given.QuoteHere is another repo:https://github.com/neogeodevall these stuff are for Neo Geo AES game console, trying to replicate the ICs and the system.My ultimate goal from learning these stuff is to create an optical disc emulator for Playstation 1, more like thePSIO.And if I could do it, then making one for other systems is easy... just like neosd cart and gdemu.I guess this is a bit easier than making a cpu right? what do you think about such projects? can you make one if you dig into it?

author: rstofer
author_rank: Super Contributor
timestamp: July 22, 2020, 04:19:01 pm
content: Quote from: VEGETA on July 22, 2020, 03:47:28 pmMaybe... I don't play games, never have. I wouldn't know a Playstation from an X-Box. Galaga and PacMan are about the only games I have ever played and I have those along with hundreds of others in a MAME full size arcade cabinet I built about 16 years ago. It is rarely used but kind of fun in a retro way. I also have PacMan running on a Nexys2 board. All I had to build was a PCB to handle the breakout for the coin box, controls and 12 bit video. The Z80 uses the T80 core at OpenCores.org and the rest is just a matter of finding the PROMs and creating BlockRAM equivalents - pretty easy stuff.https://www.fpgaarcade.com/kb/pacman/If a project such as yours has already been done then it should be pretty easy to replicate it. If it has never been done, there might be a reason - like it isn't possible. I just have no idea.

author: rstofer
author_rank: Super Contributor
timestamp: July 22, 2020, 04:33:10 pm
content: I looked at one project (NEO257) from your recent link and it looks like all they are trying to do is reproduce a 16 bit wide 2-input multiplexer chip with a CPLD. Pretty simple stuff to code as long as the original device is well understood. The code is dead simple.Your project is seems a good deal more complex.

author: VEGETA
author_rank: Super Contributor
timestamp: July 22, 2020, 04:34:33 pm
content: QuoteI figured I will start at this + VHDL free range book + buying VHDL by example from Readler. Then I will see where will I go.Till now I don't know the method of getting to reverse engineer a digital IC or system that people follow in order to code their replica system. Maybe these beginner books will speak about this. Stuff like FSM and so on are unknown to me. I remember adder, mux, encoder, etc... from college. but now totally forgotten, since I like analog electronics more.QuoteThe point of these devices is to remove the CD-ROM drive and put your board in it's place to act like it. Why? to never use physical media again and just use a microSD card or HDD instead. Nearly all retro consoles got something like this already... I just wanna make my own for PS1 then other systems if possible.The one I want has been done, it is the PSIO. this one hooks into the PS1 parallel port so it only works with those versions of the PS1. I want to make one that could be installed instead of the CD-ROM drive using the same cables and connections.... could be easier too.Quoteabout 200-300$ for a book is a no go.why this particular old book? does it go from nothing to a big system?

author: rstofer
author_rank: Super Contributor
timestamp: July 22, 2020, 06:03:33 pm
content: Quote from: VEGETA on July 22, 2020, 04:34:33 pmThe price is insane! I have a copy I bought a year or so back and the price was more modest.Why this book? The LC3 is a very popular project for a design class in college. You can see a list of different universities by just Googling for 'LC3'. Lots of classes revolve around this project.Why this project? It demonstrates a minimal but reasonably complete RISC processor and includes both an assembler and C compiler. This is a really big deal because a CPU without software is useless.The authors use microcoding and everything boils down to creating the microcode. Once the microcode worksheet is complete, EPROMs could be used for the control unit. Of course, so could BlockRAM in an FPGA. I like microcoded machines but I chose to implement a standard FSM instead. Did you know that the original 8" floppy was invented by IBM to hold the microcode that was loaded at startup on the IBM 360s? Yup! That's why we had floppies! When I was in college, microcode was king.From time to time a project may come along that needs a drop-in CPU to drive some sorts of peripherals. Fosr example, it might be easier to write an SD controller in C than in VHDL. It would certainly be easier to maintain, particularly if the code could be written in C. The CPU runs easily at 100 MHz on a Nexys4 DDR board with an Artix 100T chip. There is a lot of room for peripherals.My IBM1130 project fits easily on a Spartan 3E 1000 LE chip. in addition to a CISC processor, there is 32k words of RAM and emulations for a disk drive (implemented on a Compact Flash device), a card reader, line printer, keyboard and bouncing ball typewriter. There is a LOT of code involved with the peripherals because they have to work EXACTLY the way the originals worked in order for the operating system to run unchanged. All of the original IBM software, including the 27 pass FORTRAN compiler, work unchanged. The project runs at 50 MHz whereas the original ran at 400 kHz. A nice little 125x speedup. Someday I'll port it to the Nexys4 DDR at 100 MHz.The PSIO uses both an ARM processor (for user interface?) and an FPGA (for device emulation?). I would have thought the game system was 5V logic but the FPGA is definitely 3.3V. I'm probably wrong.A minimalist approach would be to use an FPGA to make an SD card look like a CD-ROM and forget about all the other user stuff. I don't know how the CD-ROM is handled but it's probably a lot like the HDD with command blocks sent to the reader and data coming back. It might be interesting to use a logic analyzer on the bus to see how it works. I'm sure it's documented somewhere. At the minimal level, it could be quite easy. A command block comes in from the host, it is transformed into a command for the SD card and data transfer just happens. I don't know if the game station uses interrupt driven or DMA data transfers. The entire bus definition needs to be well understood. The rest is just details.

author: rstofer
author_rank: Super Contributor
timestamp: July 22, 2020, 06:20:34 pm
content: In terms of simply replacing a CD-ROM with an SD card, adapters already exist:https://www.quora.com/Can-you-replace-optical-drive-with-SD-card-readerI don't know any more than the article states. I've never even tried...

author: Bassman59
author_rank: Super Contributor
timestamp: July 22, 2020, 06:43:44 pm
content: Quote from: VEGETA on July 22, 2020, 06:05:55 amThe software may have a thirty-day trial for the full up toolset, after which it stops generating bitstreams if you don't have a license.

author: VEGETA
author_rank: Super Contributor
timestamp: July 22, 2020, 07:11:27 pm
content: Quote from: rstofer on July 22, 2020, 06:20:34 pmLooks interesting... but why need an fpga then? all products in the market which replaces or emulates optical drive and\or game cartridges use fpga.Quotewe'll see about that in 29 days. it is beneficial if someone already tried it.Quoteso it is kinda easier than say Z80?so this book you linked has the knowledge and explanation to build one from scratch? like from basics of logic design? I found a .pdf of it in githubhere. Is it the same?I can buy books from Amazon but I generally prefer new editions and well printed ones... kinda like a kid who wants new stuff but that is that hhh.Someone from Terraonion who created different fpga based emulators recommended "VHDL by example - braian readler" which is just 120 pages. I will get it soon enough, it won't hurt and just 120 pages.QuoteYou speak like this but I don't know what it is. thus i am an absolute beginner.Quoteyes. maybe the arm cpu does more than that like get data from sdcard and so on.Quoteyou could say this is the core of what I want... not just a cd-rom but any other game cartridge on other systems but for PS1 yes cd-rom.QuoteThe link posted from quora suggested that cd-rom drives has either SATA or IDE connections... this is a surprise to me. I didn't know they use these standard connections.So yes your plan could work... but one needs to know what IC is handling this on the board. the cd rom itself is just the laser, so there has to be an ic for this.I dug up this one:http://wiki.psxdev.ru/index.php/PU-23<< it could be the one.further digging found this cd driver ic datasheet:http://psxdev.ru/files/IC704/BA6392FP.pdfthis is the cd-rom decoder:http://psxdev.ru/files/IC305/CXD1812Q.pdf>> probably it is the one that needs to be emulated? since cd-rom driver above is about motor control._________I think I should start learning from scratch soon, but I'd like books or so to give gradual projects like from LED blinking to such advanced topics.I can spend 1 hour daily for studying this thing alone, regardless of anything else.

author: rstofer
author_rank: Super Contributor
timestamp: July 22, 2020, 08:07:26 pm
content: Quote from: VEGETA on July 22, 2020, 07:11:27 pmYes but if you want to get a book about Z80s, how about the one written by the designer of the chip? He uses spreadsheets for everything!"Microprocessor Design Using Verilog HDL" by Dalrymple. Very thorough!https://www.amazon.com/dp/0963013351QuoteYes! Good find!QuoteAnything will get you started. There is time later to get into the fine points.QuoteHere are another couple of books that are complete CPUs"Digital Design and Computer Architecture = ARM Edition" by Harris and Harris. They give the complete design for a non-pipelined ARM processor in both VHDL and System Verilog. They discuss, in depth, how to add the pipeline but they don't provide the code.https://www.amazon.com/Digital-Design-Computer-Architecture-ARM/dp/0128000562"Digital Design and Computer Architeture - Second Edition" by Harris and Harris. They give the complete design of a MIPS processor in both VHDL and SystemVerilog.https://www.amazon.com/Digital-Design-Computer-Architecture-Harris/dp/0123944244In both cases, memory is small so, as written, these processors couldn't be used as drop-in cores. I haven't looked to see how hard it would be to add more memory. The LC3 project has 64k words of 16 bits - plenty enough for a decent core.

author: rstofer
author_rank: Super Contributor
timestamp: July 22, 2020, 08:17:01 pm
content: Quote from: VEGETA on July 22, 2020, 07:11:27 pmThat chip is between the ATA cable and the internals of the CD-ROM. I don't think you need to emulate that because you aren't going to drive the laser or the motor.Your concern is interpreting the commands coming over the cable and providing a proper response. If the command says read one sector at some address, that's what you need to do. What you really need to know is the ATAPI command set and what you have to return when certain commands come along.In my IBM1130 project, I had to emulate a disk that had 321 16 bit word sized sectors arranged in 8 sectors per track for some number of tracks. The FPGA gets a request to read a track and sector, does a calculation and delivers the first 642 bytes of two adjacent sectors on the Compact Flash. It doesn't need to know any more than track/sector, memory transfer address and word count. Everything is done by DMA and it tells the CPU when the read/write is complete by way of an interrupt. Pretty simple, really.

author: rstofer
author_rank: Super Contributor
timestamp: July 22, 2020, 08:40:40 pm
content: This may be of interest because it talks about ATAPIhttps://www.pjrc.com/tech/mp3/gallery/cs580/overview.htmlI think you're going to need to tap the CD-ROM bus and watch the command/response with a wide logic analyzer. I don't know how fast the signals clock but that needs to be settled before the LA is purchased.

author: rstofer
author_rank: Super Contributor
timestamp: July 22, 2020, 08:52:43 pm
content: One reason for using an FPGA to convert between SD and CD-ROM is the large number of pins involved. Speed of transfer is also a factor, of course.

author: rstofer
author_rank: Super Contributor
timestamp: July 22, 2020, 10:57:05 pm
content: Just Googling around, I see a lot of work using FPGAs with game systems.I don't know what this does but it seems impressive:https://github.com/zeldin/iceGDROMNote that it uses the inexpensive Lattice ice40 breakout board for which you just might be able to download and install the toolchain.There are a LOT of gaming projects on the Internet.

author: VEGETA
author_rank: Super Contributor
timestamp: July 23, 2020, 07:07:30 am
content: Quote from: rstofer on July 22, 2020, 10:57:05 pmthis seems interesting, I don't know why I didn't see it.Looking into the code, it is very difficult.. at least to me. Couldn't understand most of it.I found a block diagramhere, they are making an AVR softcore inside the FPGA.They seem to connect to 3 buses or pins: IDE, CDDA, and RXD\TXD.So I figure they should study the IDE interface and how it works, then make ports for the entity in VHDL (seems simple), after that I don't know. I guess they hook the oscilloscope and see the bits and how they move?now what to do after that?