If you’ve been reading Hackaday for a while now, you might recall the tale of Pano Logic that we first covered all the way back in 2013. They were a company that put out some very interesting FPGA-based thin clients, but as occasionally happens in situations like this, the market wasn’t ready and the company went belly up. These thin clients, now without official support, invariably got dumped onto the second-hand market. Shame for Pano Logic and their staff, but good news for hackers like [Skip Hansen].
After seeing a few posts about the Pano Logic devices and general FPGA hacking, he decided to grab a few on eBay and dive in. Using open source tools and the wealth of information that’s available [Skip] was able to get a Pac-Man simulator up and running over his holiday break, and he tells us his life may never be the same again. FPGA hacking is a fascinating subject with a lot of activity right now, and since you can get these Pano Logic boxes on eBay for less than $10 USD in some cases, now is as good a time as ever to get your feet wet.
Like many open source projects, [Skip] says his code is built upon the existing work of a number of other programmers, which let him get up and running much faster than if he had to start from scratch. He describes his code as the “glue” that mashes these projects together, but we think he’s being somewhat modest there. It took more than copying and pasting some code into an IDE to get Blinky, Pinky, Inky and Clyde doing their thing on the Pano Logic.
The biggest challenge was the lack of I/O. The Pano Logic thin clients have USB ports, but it seems nobody has quite figured out how to get them working yet. To talk to the outside world, you’ve got to get a little more creative. Eventually [Skip] was able to track down four lines he could effectively use as GPIO: two which are used to drive the LEDs on the device, and two which are used for the VGA port’s Display Data Channel (DDC) pins. Soldering jumpers from the LEDs to the unused pins in the device’s VGA connector meant he was even able to get these four GPIO lines accessible from the outside of the Pano Logic without having to cut any holes in the case.
Anyone with a Pano Logic client that has a VGA port, an Atari 2600 joystick, and who doesn’t mind soldering a couple of wires can now play Pac-Man with the bitstream [Skip] has provided. But where do we go from here? How long until we see DOOM running on it? Perhaps one of you fine readers should pick one up and see what you can do to advance the state of Pano Logic hacking. Just be sure to let us know about it.
We’ve previously covered one of the projects used to get this Pac-Man simulator off the ground, a very cool ray tracing demo for the Pano Logic developed by [Tom Verbeure]. In fact, [Skip] says that project was what got him interested in FPGA hacking in the first place. If you’re thinking of following his lead, you might also want to check out our FPGA Boot Camp.
24 thoughts on “Pac-Man Fever Comes To The Pano Logic FPGA”
” The Pano Logic thin clients have USB ports, but it seems nobody has quite figured out how to get them working yet.”
Interesting. FPGA driving them?
On the Pano Logic G1, there is an NXP USB host controller. All that needs to be done is write some software for it, but we haven’t gotten around to do that yet.
On the Pano Logic G2, there is no USB host controller, just a ULPI interface to a USB PHY. It’s up to the FPGA to implement the host controller. Work on that has started.
“[Skip] was able to get a Pac-Man simulator up and running over his holiday break,” Misleading statement, yet completely understandable given that the first line in their own README.md is “This project simulates the classic Pacman arcade game”, despite then going on to detail the Z80 soft-core they used.
Projects like this don’t “simulate” anything, they “synthesize” the original hardware. Important distinction, people.
Are you sure you know what the word “misleading” means?
I think you’re getting confused yourself. There are simulators and emulators. Emulators are software pretending to be the actual hardware. Simulators are physical hardware pretending to be the actual device. FPGAs used to run arcade software as if it was on the original hardware definitely come under the category of simulation.
Synthesis is the act of mapping a HDL description of the hardware onto the physical resources of a particular FPGA.
No, I respectfully disagree. Simulation has always been defined as the imitation of real-world processes over time, and it doesn’t apply solely to computer science. That said, in that particular field it was originally defined by Alan Turing when he described the Turing machine as a device that could “simulate any arbitrary Turing machine on arbitrary input”. Emulation was coined by IBM engineers in 1963 as a direct alternative to software simulation (there are multiple sources on the net that detail this, including Wikipedia). Logic synthesis, on the other hand, involves digital reconstruction, which is what project is doing. It’s a literal RTL digital reconstruction of the original circuit, it’s not “simulating” anything at all.
> “It’s a literal RTL digital reconstruction of the original circuit,”
I’m sorry but you’re mistaken. You have to look at how FPGAs are constructed to understand that in most cases what you’re describing is not possible. At a base level, FPGAs use many more (internal) components to mimic how the original circuits would have been designed. They may be functionally similar, and are certainly closer to the original implementations than software emulations, but they are not one-for-one replicas. As an example, consider how many transistors you’d need to create a binary counter, now look at how many transistors you’d need to implement the same in an FPGA (remember that you’ll need to include the look up table logic in order to result in something functional).
Here at Intel, when I run RTL on an x86 cloud CPU, we call it simulation. When we take that RTL and load it onto and FPGA we call it emulation, and when it goes to fab into an ASIC, well I guess we call it fabbing or tape-out. Synthesis happens both during emulation and fab, but the circuits in the emulation FPGA are not even the same process node and lack things like analog circuits because you can’t emulate those sort of things.
To put it another way, when you use the term “simulator” think of the Apollo simulators. The goal was to mimic the experience from the point of view of the astronauts. It doesn’t need to have the actual flight hardware required in the final product, it just has to provide a convincing simulation of the end-result. An emulator is one layer down, it reconstructs the behavior of the underlying hardware, which then runs the software just like the real hardware does. Synthesis goes one layer down again and reconstructs the actual logic gates, which then behave like the original hardware, which then again runs the original software.
Everything except the sound is synthesized. The sound is emulated or simulated depending on your use of language.
The sound is run on a RISC-V cpu but it’s not software emulating the original hardware. It’s just simulating the audio.
The RISC-V CPU is only used to initialize the Wolfson audio chip and then just sits idle forever. :-)
The audio sample themselves are fed straight from the PacMan hardware to the parallel-to-I2S interface on the FPGA. There is no CPU involvement in that.
Talk about wasting CPU cycles!
“Pac-Man Fever”… Yuck.
I remember when Pac-Man Fever was in full force. It seemed like everyone was wasting their quarters at the local arcades just to play that game. There was even a stupid pop song that went with it! Might have been around 1981 or ’82, not quite sure.
Never, even as a child, was I so glad to see a fad die.
To be clear, I’ve always thought the game was cool enough, and I had lots of fun playing it back then.
It was the insipid fad that went with it that I couldn’t stand. It’s all anyone I knew would talk about!
Where can yo get a G2 nowadays? All listings on eBay seem to be G1 with VGA port..
If your interested I can check storage at my office. We had 200+ units and before dumping them I gave anyone asking as many as they wanted, we had a mix of about 50 or so G1’s and the rest were G2’s if I recall, some might still be around but the bulk of our stock was successfully sent to folks responding to my message here on hackaday. I had people years after the post asking for them! I am happy to see someone was able to do something with these things.
Long story short we got hit hard when they went out of business and we pivoted to another platform. This left us with a ton of hardware and nothing to do with it. I dismantled a few and noticed that the FPGA alone was where the bulk of the cost must have been on these things as they sold at the time for a few hundred dollars. The USB functions were finicky as hell. We had open issues related to the USB when the company just closed their doors. Some time later I got a call from my Pano rep and she was at another place that had just acquired the IP from the now closed Pano and she was asking if I wanted to buy support from them.
We moved onto Wyse P25/P45 units and now they are part of Dell. The chips they use are made by Teradici and they seem to be very much the same kind of thing. In fact it i suspect they are rabaged FPGA hardware. Teradici is showing signs of pulling back on their chip development so if my suspicions are true then you may see more hardware like this coming up in the near future. Teradici had announced a new chip around 2017/2018 and then abruptly pulled the chip and info about its upcoming release, they have since gone cloud service heavy and I have yet to see any hardware modernization from them. However Dell/Wyse pivoted to using x86 chips with a mix of OS’s (Linux & Windows) in their new offerings, they seem to have moved away entirely away from the Teradici chips. The only part that seems to have survived is the PCoIP protocol. I have numerous units that have started to show signs of heat issues after 6 years of constant use, if the agency decides to refresh again then I will have more hardware for interested hackers.
I’d be interested in getting a few G2s for backup in case a scope probe slips or something. Now that Tom is working on the G2 it probably won’t be long unit we can do something useful with it.
I’m also interested in what the issues with USB were, was it the G1 or the G2 or both? I’m seriously interested in trying to port Doom and for that we need mass storage and I’m thinking USB. We don’t need to support a bunch of USB stuff, just MSC and a couple of specific USB joysticks.
From what I researched it looks like it will be easier getting SDRAM running on the G2 since it has a dedicated SDRAM controller in the Xilinx, but it’s probably easier to get USB going on the G1 since it has an USB controller chip. Xilnix has a USB host controller IP core, but of course it’s $$$ not something they just give away with the Webpack.
After my ray tracing article here on Hackaday, and the discovery that the G2 FPGA was now supported by the free Xilinx ISE version, all G2s were quickly snapped up from eBay.
If you have a bunch of G2s left, I’d suggest selling them not in bulk but one by one on eBay? This way more people can enjoy them for their projects?
I wouldn’t mind getting a couple of G2’s if there is some available. All the ones on ebay seem to be G1’s even if they say G2.
It would be nice of you.
I’ll be interested in buying at least one g2. But it’s quite difficult to find one a lot of ebay offer are about g2 but only have vga :/
The goal would be to have two g2 and two g1 (for testing ) but it seems there are not enough for everyone ^^°
The second problem for me is that i live in france and some sellers on ebay have really expensive shipping rates.
If with luck you can find some, do you have an idea about the price and shipping rate?
I’d be interested in either G1 or G2, thanks.
looks like quite a few rev C G2 are on sale on eBay for about $10 each
Maybe check craigslist etc, i found 3 g2 for 80€ on a german variant. Think i have to read into them, looks interesting.
Please be kind and respectful to help make the comments section excellent. (Comment Policy)