cirsim
Version:
Cirsim Circuit Simulator
137 lines (96 loc) • 3.45 kB
Markdown
# Cirsim Circuit Simulator
**Cirsim 2 is under development as an independent system
for release to general users.**
Cirsim is a Circuit Simulator with drag and drop capabilities that is designed
to support courses in introductory computer architecture. Cirsim can be used
full-screen in a browser, in a window within a browser, and can be used to present
live, operational circuits anywhere on a page, as shown in the example to the right.
Cirsim has a wide range of components from simple combinatory circuits to
processor building blocks such as memory, program counters, and ALU's.
Connections can represent both single-bit wires and multi-bit busses.
It is possible to build and operator a small processor using Cirsim.
Cirsim has extensive facilities to support educational usage, including automatic
testing of circuits and the ability to control component availability.
Cirsim has been used at Michigan State University since 2016 in CSE320 Computer
Organization and Architecture.
## Install
### CDN
``` html
<script src="https://unpkg.com/cirsim/dist/cirsim.js"></script>
<!-- or -->
<script src="https://unpkg.com/cirsim/dist/cirsim.min.js"></script>
```
### Package managers
[npm](https://www.npmjs.com/package/cirsim): `npm install cirsim --save`
## Initialize
Please keep in mind that Cirsim is currently under development. I'm hoping
to have a release soon and there will be a full documentation web site,
but if you just want to play with it, the most basic way to get Cirsim up
and running would be this:
``` html
<html lang="en-US">
<head>
<title>Cirsim Circuit Simulator</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta charset="UTF-8">
<script src="https://unpkg.com/cirsim/dist/cirsim.min.js"></script>
</head>
<body>
<div id="cirsim"></div>
<script>
var cirsim = new Cirsim('#cirsim', {
display: 'window',
components: 'all'
});
cirsim.start();
</script>
</body>
</html>
```
Note that this will only worked if served from a server. Attempts to run
Cirsim from a local HTML file will throw cross-site scripting errors in
your browser.
A version of this
page is currently available [online](http://www.cse.msu.edu/~cbowen/cirsim/minimal.html).
## Options
Pending...
## Building
You must install node.js to build Cirsim. To build Cirsim locally, after downloading, do:
```
npm install
```
To build a development build (not optimized):
```
npm run build:dev
```
To build a production build (optimized):
```
npm run build:prod
```
To build both:
```
npm run build:all
```
To run in the webpack development server:
```
npm run serve
```
When running as a server, the URL is http://cirsim.localhost:8080. That version
will have all available components (other than deprecated components). Othere
valid URLs are http://cirsim.localhost:8080/inline.html, which demonstates
using Cirsim as an inline demonstrator, and http://cirsim.localhost:8080/full.html,
which demonstrates Cirsim running full screen.
To run tests:
```
npm test
```
To build the documentation in the doc folder:
```
npm run build:docs
```
## License
Copyright 2016-2019 Michigan State University
Cirsim is released under the MIT license.
* * *
Written and maintained by Charles B. Owen