Hacker News new | past | comments | ask | show | jobs | submit | scottchin's comments login

Thinking about this topic some more, it seems hard to gain the critical-mass of contributors for such an open-source tool.

Place-and-route for example, requires a very specific set of knowledge in both optimization (comp-sci), and hardware (electrical). Most of the people who have these skill sets are probably already employed by the major FPGA vendors and under NDA to not contribute to such an open-source tool. I've seen this first-hand having been in the academic space of FPGA research. New masters and phd grads typically go straight to Xilinx or Altera. And without really really good place-and-route, you won't have a competitive tool.

I'm not sure how you would solve this problem.


OP here

This is a severe problem that saddens me greatly. For now I am just writing tools to make JTAG/SPI/etc loading of chips Ubiquitous to the developer writing software/netlists for them. I do not know enough about the place and route math and routines, nor have I seen enough details of real life chips to know the types of real challenges faced. But I will cross that bridge when I get there (maybe it will be someone else :)).

I personally have a huge issue letting anything fundamental I figure out be marked down as the property of a company to have and hold for 20+ years. But I understand the financial rewards and interesting problems are more than enough for many people, so I can not hold it against a student with a PHD worth of debt to need cash. Sigh.

Hopefully if a good enough extensible base exists, people will add pieces on (whatever they can get away with) over a long time. That is all I can really hope for.


First, just wanted to say that I find this topic really interesting. I'm trying to understand who the target user is for open-source FPGA tools.

For many hardware companies, the risk of using an unproven tool is too severe. Unlike software, you can't just push out a patch if there is a bug. I mean, in theory, I guess you can since FPGAs are reconfigurable, but it is probably not very straightforward from a deployment point of view (I actually don't know so feel free to correct me).

So, since you cannot push out fixes easily, it's quite scary for the engineering teams to work with unproven tools. For the consumer electronic space, product life-cycles are quite short (mobile phones get updated every year!). So you definitely don't want to risk cutting into your product's time-to-market due to bugs in the FPGA tools.

Also, the bigger the company, the more likely that they will have high-priority direct-support from the FPGA Vendors. Whereas, it's probably harder to get support for open-source tools. So I can't see consumer electronic companies choosing open-source tools.

So again, I'm not against this work at all! Just trying to understand the target audience.


>(I actually don't know so feel free to correct me).

Okay, I will :) Many FPGAs load their program from a SPI chip on board, which can't be reprogrammed. However, it's increasingly common for another microcontroller or SoC to be on the same board. In this case, it's cheaper and more convenient to store the FPGA bitstream on that controller's flash and send it over SPI to the FPGA on powerup, which makes upgrades much easier, too.

On the Xilinx Zynq, a FPGA containing two Cortex-A9 cores running Linux, you can simply cat your bitstream to a character device to reconfigure the FPGA.


OP here

I get there is a big difference between hardware and software, but I feel that certain parts of the gaps are closing. They will not CLOSE, but as they get closer we can learn from each other.

With that said, to address your point: Linux is one of the most dominant systems for servers. Google, Facebook, Twitter, etc use it for almost all of their backend systems. They use it not just because it is free but because it is proven and scalable. Open source databases and web servers also enjoy considerable (sometimes dominant) share. There are companies that provide support contracts for Linux (Suse, Redhat) and that model has worked to fund other open software.

So I think that establishes that a company will use open software.

As for being scary, you are correct that is a primary decision making motivation. It is why many professionals in tons of industries still run windows XP. Often they NEED XP because the software they rely on is so dependent on that specific ecosystem that huge rewrites are necessary in order for it to work on anything else, and this work (even if done by the original distributor) will take years for the tools to be stable again. This is not good engineering on the part of the tool designers. The crippling fear of NEVER TOUCHING ANYTHING is something that the open software alternatives seem to be alleviating in corporate environments since the late 90s.

The lifecycles of putting a phone together is much faster than Intel designing a processor, or Xilinx designing a new FPGA. building boards in phones and laptops is a complex game of Lego and placing them around so the timing diagrams work in all expected use cases. And if the timing does not work in some cases, whatever, people get a phone a year. Hell on my Galaxy S3 Verizon said 'oh yeah that is a known issue where sometimes the GPS just does not work because of loose wires, that was fixed in the S4, I think, which is only $$$.'

You are also correct about direct support from the company. In face make Xilinx enough money and they will share their secrets with you. But I am more targeting small to medium development. If open tools become popular and stable enough to get market share in hobbyist up to medium sized companies, it will only be so many years before bigger companies hire new engineers who grew up using open tools and have no patience for tools that have to be emulated in windows XP and have 35 nested sub menus for enabling a feature.

I do not feel attacked at all. You brought up interesting points. I hope i did them justice and did not ramble since there were a lot of points to hit.


Having done my graduate studies in FPGA architecture and software, I can definitely see where the author is coming from. In fact, it seems like the entire hardware development industry has to face the issue of most tools being closed-source. Although I don’t have a solution for the technology specific phases (Place and Route, Bit Stream Generation, etc.), I am actually part of a company that is trying to help solve this problem higher up in the tool chain.

One of the biggest barriers to developing EDA (electronic design automation) software tools is knowing all the nuances of the various hardware-description languages like VHDL, Verilog and System Verilog. We learned this the hard way through our previous startup (later acquired) which built a hardware verification tool.

I don’t want to be self-promoting here, but in case anyone in this thread is interested, we are building a platform called Invio that lets you build your own EDA tools. We try to solve more than just the language support side of things and all of our platform’s inputs and outputs are open standards: Python, TCL, Verilog, SystemVerilog, VHDL, etc. You can look at my profile to find more info, or google “Invio”.


Do you have an offering that would allow me to code up a SystemVerilog->Verilog translation script on a hobbyist budget? I'm stuck coding for my SP605 in Verilog (or VHDL) but I would really like to be able to use structs and interfaces from SystemVerilog.

Coming from software dev it's insane: The $500 devkit doesn't support structs and I would have to pay $1300 to get one that does. Meanwhile C has had structs for 40 years... :(


I've had similar needs but couldn't find an existing tool, nor a parser on which to build. There are some open source parsers [0], but they don't seem to do preprocessing and hence lose a lot of context.

So I made a parser that might work for your use-case given some work:

https://github.com/svstuff/systemverilog

It works for some fairly big codebases, so I know it's not completely broken. I'm not very proud of the scala code, it's quite ugly in places. But at least there are some tests :p

[0]: this also seems active worth checking out: https://github.com/gburdell/parser

EDIT: added link to other parser.


Thanks, looks promising! My needs are pretty minimal at the moment but it will be both refreshing and educational to give this a go.

Duplicating all the DRAM wires at each and every level of abstraction was just hideous.


How about using VHDL and records? I think these are synthesizeable outside of ports. VHDL is a much better language from a software engineering standpoint than Verilog.


I know nothing about VHDL -- I vaguely remember hearing someone say it suffered from the same issue so I didn't pursue it. Thanks for the tip!


VHDL is more strongly typed than Verilog (I consider this a good thing). Sure, it's a bit more verbose, but the language is more expressive than Verilog - allows overloading operators, for example. A nice example of the advantage of VHDL over verilog is that there's a FixedPoint type in VHDL (as of VHDL 2008, I think) whereas in Verilog you're on your own to line up the binary points - very annoying.


aninhumer was (and may still be) doing something similar-sounding with bluespec; you may like to talk to him.


One of the major challenges in creating a competitive FPGA architecture is tuning the architecture. Commercial vendors do this tuning through direct insight into their customer's designs. And since the vendors have a large portfolio of customer designs, they have a lot of data points to perform this tuning. That's one of the many reasons why we haven't seen a successful FPGA startup in a long time (decades probably). Kind of like a chicken and the egg problem.


Congrats on the release and thanks for open-sourcing! I downloaded it and left a positive review!


Although I'm not thrilled with the launch experience and DRM of SimCity, I don't think that this article adds any validity due to everything coming from an anonymous source.


He isn't anonymous to RPS - they say they know who he is, and verified he worked on the project just aren't publishing his name. That's a lot different than an "anonymous tip."

"Our source, who we have verified worked directly on the project but obviously wishes to remain anonymous, has first-hand knowledge of how the game works."

Either RPS is being duped, or it strongly adds validity to the story. RPS has a great reputation, and if they say they verified it, I think that puts the burden of proof now on EA to show that that the claim is incorrect.


It's possible RPS isn't known by many on HN. Gaming journalism doesn't often make its way to this place.


I think the anonymous source perfectly illustrates why other players have been able to handle playing offline for up to 20 minutes without any hiccups in the simulation. If indeed the server is simply processing the messages between cities, it makes sense that they have a time constraint on how long a city can operate without hearing from other cities in the region.


OK, so get out Wireshark and have a peek for yourself. Figure out how to decode the data in the responses returned from the server (I'm sure it's not much more than maybe binary packages of metadata transmitted over SSL) and examine it until you're confident.

http://ask.wireshark.org/questions/16788/wireshark-decrypt-s... http://computer-forensics.sans.org/blog/2009/03/10/pulling-b... should help get you started.

"The great thing about facts is that they're true whether you believe them or not"

Also, Notch has "confirmed" this (if you trust him more than a sketchy anon source that RockPaperShotgun has stated that they've verified) https://twitter.com/notch/status/311535572596432896


Thanks for the links. I wasn't clear. I didn't mean to imply that what the source was saying is not possible. Since I wasn't familiar with the credibility of RPS (which I now hear is very credible), I just felt like reading the article didn't tell me anything concrete.


RPS is generally credible.


> And to get us back in your good graces, we’re going to offer you a free PC download game from the EA portfolio.

I can't help but think of the "20$ off your next purchase" pre-order bonus. Which, if you read the fine print, must be used within 2 weeks, and from a select list of really old games, and only applies to a purchase of 30$.


Looks great! Congrats on the release!

Did you work on this game by yourself or with other people?

Did you use any existing game frameworks like Cocos2D or Unity?


Congratulations! And thanks for writing this post. I find these types of post from developers extremely insightful and inspiring.

I particularly found your experience with improving Chinese SEO very interesting.

Keep up the good work!


Thanks for reading! I remember reading a lot about other developers when I started out, so I just want to make sure I give back. Plus, it's a bit of free marketing for my apps. :-)


I have registered three developer accounts on the App Store (two for companies and one as an individual). Disclaimer: This was some time ago though.

If you have already registered a developer account, you will have already decided on whether it is for an individual or a company, in which case, your tax/banking need to follow that.

If you want to register a new dev account for a company, you should give yourself a few weeks since you will need to do some back-and-forth paper work with Apple. It's not that complicated but it takes time. Plus you will need to actually do the incorporation stuff for your government.

The following are things that I wish I had done from the start. If you go the company route, I would recommend that you consult a lawyer to get all of the incorporation paper work done correctly, and consult an accountant to learn about your financial reporting responsibilities. It will give you peace-of-mind down the road. Also, be on-top of your accounting. Again, for peace-of-mind down the road. It's easy to put off.

One more tip. Don't rely on iAd alone. Do backfill to something. Admob for example.

Also, have a realistic expectation for a purely ad-supported app. They do work, but require significant activity. E.g., let's say you get $1.50 per 1000 ad impressions (cpm) on 60s ad rotations. How many total user minutes per day do you expect? You can use this to get a very rough estimate.

Best of luck to you!


Thanks, this is great stuff! I have a developer account registered as an individual. Does that mean that I can still charge/add ads, as long as I provide my own personal banking and tax information?

Also, yeah, I have no illusions about making a ton of money from this app. It's mostly just something I started putting together while I was learning iOS, and then kept polishing once I was comfortable with iOS because I liked the idea. If I can't get the money stuff squared away I'll probably put it up for free anyway; I just figured that if I'm gonna release it to the world I might as well see if I can get some beer money for doing so.


I should also mention from experience with a niche app which has a few thousand users, I ended up making $1.50 in revenue over the course of a year.

I released an update this December, and am now charging $1.99 and doing thousands of percent better, and I haven't put any effort into promoting the app yet.


You can change an individual account to a business account, so that doesn't lock you in yet. https://developer.apple.com/support/ios/account-management.h...


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: