[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [oc] file organization



Respected Sir

 Please send me the VHDL code for ATM mutipelxer. I will be very 
thankful to you.

Regards
karrar hussain.


----- Original Message ----- 
From: "llbutcher" <llbutcher@v... > 
To: <cores@o... > 
Date: Fri, 26 Oct 2001 02:49:01 -0700 
Subject: [oc] file organization 

> 
> 
> Folks: 
> 
> I would like to try to incite some discussion about how the 
> opencores IPs are organized. 
> 
> The two main goals, as I see them, are to: 
> 1) allow people to find already written cores 
> 2) attract people to write cores 
> 
> As an example, I wrote a crc_32, but didn't know where 
> to put it.  I put it somewhere random. 
> 
> Now someone else wants to write a crc_32 with some 
> different characteristics.  What should happen? 
> 
> No matter what, new authors should write IP!  But everyone 
> should benefir from everything. 
> 
> 
> Where to put cores should perhaps be obvious if the 
> project layout is clear, and if it changes to include new 
> insights about use as time goes by.  I would propose 
> that big top-level organization ideas should be done 
> by Opencores experts (perhaps those who own the 
> server) with lots of vocal argument from the mailing list. 
> 
> 
> The second goal is harder, because I think we need 
> to try to have an organization which invites people to 
> do their own implementation of an already-existing core. 
> 
> Writing a core is the best way to learn the subject material. 
> Alternate cores will each have special advantages.  Plus, 
> if we have alternate cores we will be able to run them 
> together to compare the correctness of the cores. 
> 
> This is where I want to get you to send in suggestions. 
> 
> 
> I would like to suggest that all projects existing and contemplated 
> be PUSHED DOWN ONE LEVEL OF HIERARCHY. 
> 
> For instance, the present scheme is Arithmetic core -> CORDIC 
> core 
> 
> It should become Arithmetic core -> CORDIC -> CORDIC core. 
> 
> This would allow a new author to write another CORDIC core, and 
> have an obvious place to put it.  This should induce more people to 
> write IP, even if they contemplate writing stuff which overlaps 
> with 
> existing cores. 
> 
> It's not a great idea, but is it enough to get people to suggest a 
> better 
> one? 
> 
> 
> Second attempt to get everyone to spout ideas: 
> 
> Are the Opencores top-level projects the best? 
> 
> 
> The present opencores layout has these main headings: 
> 
> Arithmetic         Communications Controller    Coprocessors 
> Crypto              DSP                                         ECC 
> Memory cores  Microprocessors                     Other 
> Prototype          SOC                                        
> System 
> Controller 
> Video Controller 
> 
> 
> Xilinx organizes their IP this way: 
> 
> basic elements 
>     contains logic, comparitors, multiplexers, counters, encoders, 
> decoders, 
>     incrementers, decrementers, registers, latches 
> communications and networking 
>     contains ATM, SONET, ECC, telecom, encryption, building blocks 
> video and image processing 
>     contains building blocks 
> digital signal processing 
>     contains correlators, filters, modulation, processors, DPLL, 
> transforms, 
> building blocks 
> math functions 
>     contains adders, subtractors, comparitors, complementers, 
> CORDIC, 
> dividers, 
>     reciprocal functions,  format conversion, integrator, 
> multiplier, square 
> root, 
>     arythmetic and logical unit, building blocks 
> microprocessors, controllers, and peripherals 
>     processor peripherals, processor cores, uarts, building blocks 
> standard bus interfaces 
>     PCI32, PCI64, PCMCIA, other, other standard interfaces, 
> building blocks 
> memories and storage elements 
>     CAMS, FIFOs, RAMs, ROMs, delay elements,  registers and 
> shifters, 
> building blocks 
> 
> Their partners provide Color Space Conversion, DCT, Reed-Solomon, 
> T1/E1, and 
> other IP 
> 
> Mentor organizes their Inventra cores this way: 
> Communications, DSP, Microcontrollers, Microprocessors and 
> Peripherals, 
> Multimedia, 
> Storage, Wireline Communications 
> 
> They have a very nicely formatted document listing all of their IP 
> by more 
> detailed headings. 
> 
> 
> Lets be honest.  None of these are bad, and none are better than 
> the others. 
> What can Opencores swipe to become the best? 
> 
> I would like to see Opencores organized differently, to try to help 
> new authors know where to get common building blocks, and to 
> try to help them know where to put new projects. 
> 
> I am going to make stuff up here.  I would like to see these (and 
> not 
> in alphabetical order!  They should be in the order which leads to 
> the best understanding.) 
> 
> 
> Common Opencore Elements 
> (contains wishbone, example copyrights, example teaching code 
> conforming 
>   to the Opencores coding specifications, any stuff to support 
> assertions 
> which 
>   people want to be widely used, any components which should be 
> used 
>   throughout the opencores projects, and any verilog or PLI things 
> which are 
>   of great interest, like file IO stuff for poor verilog.) 
> 
> Libraries 
> (Any libraries, imported or written, which the authors hope will 
> have wide 
> use 
>  inside chips. These could include things like on-chip memory 
> libraries.) 
> 
> Microcontrollers, Microprocessors 
> (contains branches for the various RISC efforts, branches to 
> contain the 
>   several instances of 8051's we might get, any other complete 
>   processors, and maybe the FPU efforts?) 
> 
> Peripherals 
> (contains branches for Ethernet, ATM, UARTs, IIC, PCI, AC97, Video, 
>  GPIO, PWM, most everything else which is likely to be used in 
>  it's entirity in a Microprocessor or in a system) 
> 
> Cores and Tutorials 
> (Things which are written to explore an idea, but which will need 
>  to be encapsulated or modified to be used.  I see the Math 
> functions, 
>  the ECC stuff, and the Crypto stuff as possible sub-directories.) 
> 
> DSP 
> (because this seems to contain specialized parts which might fall 
>  into Microprocessors or Cores, but which would be hard to find 
>  if separated.) 
> 
>  Board-level Component Library 
> (Simulation models for devices needed for system-level simulation.  
> I 
>  dont know what people will write, but DRAMs seem likely.  Any 
> special 
>  device needed to simulate a specific system could be parked here, 
> instead 
>  of in the originating system directory, so that other people can 
> find 
> them.) 
> 
> Board Level IP 
> (This is stuff like schematics, gerbers, pictures of hardware, who 
> knows) 
> 
> Support Software 
> (The various microprocessor efforts need somewhere to put software 
>   or pointers to software to support their efforts.  And there are 
> many 
>   PERL jocks and/or pre-processor users who need to bring their 
>   stuff to a common place.) 
> 
> 
> I would like to see a small and mostly fixed set of top-level 
> directories, 
> and under them subdirectories for the various big IP classes. 
> 
> Under those sub-directories, I would like to see a second level 
> of indirection to try to leave room for alternate implementations. 
> 
> And finally the directory roots of individual efforts, managed by 
> the IP teams. 
> 
> To get this to work, there should be a second parallel tree made 
> for the present IP, to try to see how things fit.  Then, if 
> everyone 
> thinks it is better, we can start using the new tree as the 
> preferred 
> one. 
> 
> That's it for tonight.  Can anyone think more clearly about this 
> and 
> suggest a better scheme? 
> 
> Blue Beaver 
> 
--
To unsubscribe from cores mailing list please visit http://www.opencores.org/mailinglists.shtml