J o h n _ E a t o n (at) hp . com (no spaces) wrote:> Michael wrote: > >> Weng Tianxiang wrote: >> >>> Hi Pablo, >>> Thank you for your useful information. >>> >>> Weng >> >> >> >> The problem is "System Requirements": "SPARC CPU based system" >> > > Is that for the software development environment?. Seems like the > verilog rtl code should be pretty generic. From the description it > sounds more like a big compute farm engine rather than something > you would put in a fpga for an embedded system. > > > > John EatonWhy not? This would be a great teaching tool for fpga design and/or computer system design courses at college level. ~jz
OpenSPARC released
Started by ●March 21, 2006
Reply by ●March 23, 20062006-03-23
Reply by ●March 23, 20062006-03-23
Jason Zheng wrote:> J o h n _ E a t o n (at) hp . com (no spaces) wrote: > >> Michael wrote: >> >>> Weng Tianxiang wrote: >>> >>>> Hi Pablo, >>>> Thank you for your useful information. >>>> >>>> Weng >>> >>> >>> >>> >>> The problem is "System Requirements": "SPARC CPU based system" >>> >> >> Is that for the software development environment?. Seems like the >> verilog rtl code should be pretty generic. From the description it >> sounds more like a big compute farm engine rather than something >> you would put in a fpga for an embedded system. >> >> >> >> John Eaton > > > Why not? This would be a great teaching tool for fpga design and/or > computer system design courses at college level. > > ~jzOnly if it can fit into an FPGA. Anybody have a gatecount? John Eaton
Reply by ●March 23, 20062006-03-23
Personally I think the best textbook on logic design is AMD PAL Device Handbook. All my logic training was based on the book, read by myself, not taught at any classes. I bought 5 VHDL books, but only the AMD book really teaches me how to program in logic. The open CPU source code is an excellent contributions to the generations of logic designers by Sun Microsystem. It would be much wonderful If there is an retired engineer from Sun who deeply invovled in the code making writes a book with the opened source code. It would be more valuable than any Verilog books available in the market. Teaching by example is the best way to teach a language and related technique. Real design examples give you really deep insights on what the designers were thinking about and how nicely they handle the difficult situations. I appreciate Sun's efforts to open its source code. Thank you, Sun Microsystem. Weng
Reply by ●March 25, 20062006-03-25
The source comes with scripts for Design Compiler. I guess they want you to use that tool; which is for targetting ASICs.
Reply by ●March 25, 20062006-03-25
Oh, and I don't have a gate count but the design is quite large:
[gliss@precision design]$ find ~/opensparc/design -name "*.v" -exec cat
{} \; | wc -l
323957
There are over 320,000 lines of Verilog and the support scripts are
built for a DC ASIC synthesis environment... good luck getting that to
fit in an FPGA.
Reply by ●March 25, 20062006-03-25
Chris, Brings up a question for the group: how many lines of verilog can you fit in any given FPGA? Anyone out there in the ASIC emulation world care to comment? Being a 'hardware' type, I am just ignorant... Austin chrisbw@gmail.com wrote:> Oh, and I don't have a gate count but the design is quite large: > > [gliss@precision design]$ find ~/opensparc/design -name "*.v" -exec cat > {} \; | wc -l > 323957 > > There are over 320,000 lines of Verilog and the support scripts are > built for a DC ASIC synthesis environment... good luck getting that to > fit in an FPGA. >
Reply by ●March 25, 20062006-03-25
Austin Lesea wrote:> Chris, > > Brings up a question for the group: how many lines of verilog can you > fit in any given FPGA?It's a meaningless question without considering the exact nature of the Verilog code. For example, a complex control FSM described in several pages of code may require less than 100 gates. On the other hand, a simple (but wide) flip-flop intensive data path, described in a few lines, may require 10000 gates or more. As for the SPARC code, it seems like an extreme example. I wouldn't call this RTL code. It's more like a manually generated technology- independent netlist. For example, they don't even use flip-flop inference. And they do have excessive hierarchy. I suspect that it should be possible to gain at least an order of magnitude in terms of lines of code by using a proper RTL style. And the synthesis results might be better. (Excessive hierarchy tends to yield suboptimal synthesis results). Regards, Jan -- Jan Decaluwe - Resources bvba - http://www.jandecaluwe.com Losbergenlaan 16, B-3010 Leuven, Belgium From Python to silicon: http://myhdl.jandecaluwe.com
Reply by ●March 25, 20062006-03-25
Jan, OK, that makes sense. I had thought the "law of large numbers" would take over with enough code, but if this code is handcrafted for ASIC cell applications (with extremely primitive cells), then it would synthesize very poorly for anything but that application. Austin Jan Decaluwe wrote:> Austin Lesea wrote: > >> Chris, >> >> Brings up a question for the group: how many lines of verilog can you >> fit in any given FPGA? > > > It's a meaningless question without considering the exact nature of > the Verilog code. > > For example, a complex control FSM described in several pages of > code may require less than 100 gates. On the other hand, a simple > (but wide) flip-flop intensive data path, described in a few lines, > may require 10000 gates or more. > > As for the SPARC code, it seems like an extreme example. I wouldn't > call this RTL code. It's more like a manually generated technology- > independent netlist. For example, they don't even use flip-flop > inference. And they do have excessive hierarchy. > > I suspect that it should be possible to gain at least an order > of magnitude in terms of lines of code by using a proper RTL > style. And the synthesis results might be better. (Excessive > hierarchy tends to yield suboptimal synthesis results). > > Regards, > > Jan >
Reply by ●March 26, 20062006-03-26
I found this in design/sys/iop/sparc/ifu/rtl/sparc_ifu_rndrob.v
....
assign next_pv[0] = pv[0] | reset;
dff #4 park_reg(.din (next_pv),
.clk (clk),
.q (park_vec),
.se (se), .si(), .so());
....
I don't see how the #4 is legal is Verilog 2001.
Can someone explain to me under what it means,
and under what circumstances this is legal?
Is this construct part of Verilog 2001, or is it vendor specific?
-- IDB
Reply by ●March 26, 20062006-03-26





