Re: [myhdl-list] Migen logic design toolbox - now with simulator
Brought to you by:
jandecaluwe
From: Bob C. <fl...@gm...> - 2012-03-19 00:20:08
|
On 03/18/2012 03:18 PM, Jan Decaluwe wrote: > On 03/17/2012 09:20 PM, Bob Cunningham wrote: >> On 03/16/2012 02:03 PM, Jan Decaluwe wrote: >>> My conclusion is that Migen found an easy target in you, as a >>> newbie, to confuse you. It made you think it can be used for >>> serious design work. >> Sorry, Jan. If I have to be "confused" to play with my FPGA, then so >> be it. I'm very "serious" about being able to play with my FPGA! >> >> Your statement has an obvious implicit context: To me, you are >> shouting, "MyHDL is for Serious Designers Only! Newbies and >> Pragmatists should Go Away!" > No, the "obvious implicit context" is "obviously" entirely > different: I assume you want to do serious design work and > I find it a pity that Migen managed to make you think it is > a valid alternative for that purpose. I hate to see people > wasting their time. > > And I was not shouting. Would you please define what you mean when you repeatedly use the phrases "serious digital design" and "serious design" in your posts? Please be clear and concise. State what is and is not "serious digital design" according to your definition of the phrase. Try to make your point without using that phrase. You are throwing those phrases around as if they were self-obvious and self-justifying. They most certainly are not! What do they mean to you? What do you believe those phrases should mean to me? -- Your use of those phrases reminds me of my own past, back in the day when we had stickers on our terminals that said things like "Real Programmers Use Assembler" and "Coders Use Assembler: Real Hackers Write Machine Language". I am of that generation where I wrote several programs in binary, octal and hexadecimal machine language, manually strobing words into memory locations to build programs and data in-place. This was not because assemblers and higher-level language compilers didn't exist, but because they weren't freely available to me at the time. Or sometimes because I was working with machines so broken that they had no functional peripherals for storage or I/O beyond rows of lights and switches on the front panel. We took great joy in our knowledge of the fundamentals and particulars of a given machine's instruction set and its idiosyncratic behaviors. We became a clique that considered those who did not match our interests and expertise as not being interested in "serious program development". Then we noticed some folks were getting just as much work done in the "real world" as we were, with 10% of our technical knowledge, using tools such as BASIC and even (*gasp*) spreadsheets. Sure, their programs weren't fast, nor were they elegant, but they got the job done. I feel no need to repeat that path with digital design. I have a powerful computer (well, several of them) that should be able to do most of the heavy-lifting for me as I design and implement my first circuits. I want to start with a spreadsheet-like tool that will let me design and implement useful things with my FPGA. Today! Unfortunately, that tool does not yet seem to exist. But Migen is clearly a step in that direction when compared to the available HDLs. Sure, you probably shouldn't use a spreadsheet to implement a real-time aircraft control system. There are some things that any given tool won't be ideal for accomplishing. I'm not looking for a be-all end-all do-it-all tool or approach. I just want to do "fun stuff" with my FPGA! I want an enabling approach, maximum yield for the initial effort. When I outgrow my initial tools, I will know it. That will be when I'll need to get more "serious". But not today, and perhaps not ever. You chose Python as your tool for implementing MyHDL, when you could have been a "more serious" programmer and chosen assembler instead (not machine language, because no computer has front panel switches any more). Or even C. Why didn't you? Clearly, you valued pragmatic productivity over any abstract notion of software "seriousness". I seek the same in the arena of digital design. So, what does the phrase "serious digital design" mean to you? Perhaps you yourself are not really serious enough when it comes to digital design: Doesn't everyone know that "Real Digital Designers Use Rubylith!"? When was the last time you used a switch to toggle the ones and zeros to manually feed a bitstream into an FPGA? Clearly you aren't against using higher-level hardware and software tools to abstract away low-level details that are irrelevant to the work at hand. I desire the same, and Migen is clearly a step in that direction. Again, I ask, what do you mean when you say "serious digital design"? Do some contexts permit "serious digital design", and other contexts somehow magically exclude it? Please clarify your terminology. -BobC |