== OpenRISC System Creator == '''Knowledge Prerequisite:''' Any scripting language. System design and computer architecture knowledge '''Brief explanation:''' OpenRISC project main problem is difficulty in creating a full system design (CPU, switch, peripherals) and visualizing them. Task is to create a tool to solve this problem. Several approaches are possible: - You'll design Mercurial/Git/Npm like tool for OpenRISC system design. By executing 'openrisc init' empty system will get created, by doing 'openrisc create switch' switch will be placed in the system etc.. Example: openrisc init openrisc create switch sw0 openrisc create cpu -t or64k cpu0 openrisc connect sw0.m0 cpu0.s_inst0 openrisc connect sw0.m1 cpu0.s_data0 etc - you'll pick and define DSL (Domain Specific Language) for system description - you'll use YAML/JSON as system description. '''Mentor:''' Wojciech Koszek == OpenRISC Web-based system for system visualization == '''Skills''' HTML5, Jquery Graph/chart javascript library (d3?) '''Brief explanation:''' OpenRISC needs easy-to-use system for showing how system looks like in a "graphical" way. Think of connecting boxes together with each other on the schematics. There's no way to do this now in OpenRISC, since there's no software. Goal is to: - understand HW/SW elements in modern embedded systems. - figure out in JQuery/Javascript/HTML5 how to write an application with drag&drop capabilities to place CPU (1 box), Switch (1 box) and some other blocks, and wire them all together. Then store this config in memory somehow (JSON) and preserve it on the client side (LocalStorage on HTML5) and submit it to the server. - server should at least receive it '''Mentor:''' Wojciech Koszek