{ "info": { "author": "Paul Prozesky", "author_email": "apatel@ska.ac.za", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: GNU General Public License v2 (GPLv2)", "Operating System :: OS Independent", "Programming Language :: Python :: 2.7", "Topic :: Scientific/Engineering :: Astronomy", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "# casperfpga #\n\n`casperfpga` is a python library used to interact and interface with [**CASPER** Hardware](https://github.com/casper-astro/casper-hardware). Functionality includes being able to reconfigure firmware, as well as read and write registers across the various communication interfaces.\n\nThis README will outline, and make reference to, the following:\n1. Notes to Users\n 1. [New Users](#new-users)\n 2. [Existing Users](#existing-users)\n2. [Installation](#installation)\n3. [Usage](#usage)\n 1. [Getting Started](https://casper.berkeley.edu/index.php/getting-started/)\n 2. [Methods and Utilities](https://casperfpga.readthedocs.io/en/latest/)\n4. [Contributing](#contributing)\n\n\n## Notes to casperfpga users ##\n\n### New Users ###\n\nNot much to say to new users except welcome! It goes without saying that once you have cloned this respository you should make sure you're on the correct branch (usually **master**, unless you're a contributor) and always pull regularly. This, to make sure you have the latest version of casperfpga with the latest features. You can move on straight to [Installation](#installation).\n\nShould you be an existing `corr` user, wondering where some of your functionality has gone when interfacing to your ROACH/2, please [look here](https://github.com/casper-astro/casperfpga/wiki/Migrating-from-corr-to-casperfpga) for a detailed explanation on **How to migrate to `casperfpga`**.\n\n### Existing Users ###\n\nFrom commit [`a5e7dcc`](https://github.com/ska-sa/casperfpga/tree/a5e7dcc05d4b0234d05e808fc6b8ab91485b8051) and earlier the method of instantiating e.g. a SKARAB object was as follows:\n\n```python\nIn [1]: import casperfpga\nIn [2]: skarab = casperfpga.SkarabFpga('skarab010103')\nIn [3]: roach = casperfpga.katcp_fpga.KatcpFpga('roach020203')\n```\n\nAs of commit [`4adffc0`](https://github.com/ska-sa/casperfpga/commit/4adffc0994c56c38dafe6a395d3ed94e8e9477cc) the method of instantiating a ROACH or SKARAB was altered to be done intelligently. `casperfpga` automatically works out whether the hostname given in its instantiation is a ROACH, SKARAB or SNAP board.\n\n```python\nIn [1]: import casperfpga\nIn [2]: skarab = casperfpga.CasperFpga('skarab010103')\nDEBUG:root:skarab010103 seems to be a SKARAB\nINFO:casperfpga.transport_skarab:skarab010103: port(30584) created & connected.\nDEBUG:root:casperfpga.casperfpga:skarab010103: now a CasperFpga\nIn [3]: roach = casperfpga.CasperFpga('roach020203')\nDEBUG:root:roach020203 seems to be a ROACH\nINFO:casperfpga.transport_katcp:roach020203: port(7147) created and connected.\nDEBUG:root:casperfpga.casperfpga:roach020203: now a CasperFpga\n```\n\n## Installation ##\n[`casperfpga`](https://pypi.org/project/casperfpga/) is now available on the Python Package Index (PyPI) and can be installed via [`pip`](https://pip.pypa.io/en/stable/). However, should you need to interface with a SNAP board, your installation workflow involves the extra step of installing against `casperfpga's requirements.txt`.\n\n```shell\n$ git clone https://github.com/casper-astro/casperfpga\n$ cd casperfpga/\n$ sudo apt-get install python-pip\n$ sudo pip install -r requirements.txt\n$ sudo pip install casperfpga\n```\n\nThe distribution on the Python Package Index is, of course, a built-distribution; this contains an already-compiled version of the SKARAB programming utility `progska`, written in `C`. Operating Systems tested using `pip install casperfpga` include:\n\n1. Ubuntu 14.04 LTS\n2. Ubuntu 16.04 LTS\n3. Debian 8.x\n\nUnfortunately the success of your installation using `pip` depends on the host OS of the installation, and you might need to rebuild the utility using the C-compiler native to your OS. In short, follow the more traditional method of installing custom Python packages.\n\n```shell\n$ git clone https://github.com/casper-astro/casperfpga.git\n$ cd casperfpga\n$ sudo pip install -r requirements.txt\n$ sudo python setup.py install\n```\n\nTo check that casperfpga has been installed correctly open an ipython session and import casperfpga.\n```shell\n$ ipython\n```\n```python\nIn [1]: import casperfpga\n```\n\nIf you receive any errors after this please feel free to contact anyone on the [CASPER Mailing List](mailto:casper@lists.berkeley.edu), or check the [Mailing List Archive](http://www.mail-archive.com/casper@lists.berkeley.edu/) to see if your issue has been resolved already.\n\n## Usage ##\nThe introductory [tutorials](https://github.com/casper-astro/tutorials_devel) for ROACH/2, SKARAB and SNAP serve as a guide to the entire process of:\n* Creating an FPGA design in Simulink using the CASPER and Xilinx Blocksets\n* Building the design using the toolflow, and lastly\n* Reconfiguring your CASPER Hardware with the generated .fpg file using `casperfpga`\n\n`casperfpga` is written in python and mainly used to communicate with CASPER Hardware and reconfigure it's firmware. Hence the medium of communication is usually done through an ipython session, as shown below:\n\n```python\nimport casperfpga\nfpga = casperfpga.CasperFpga('skarab_host or roach_name')\nfpga.upload_to_ram_and_program('your_file.fpg')\n```\n\n## Contributing ##\n\nFork [this](https://github.com/casper-astro/casperfpga) repo, add your changes and issue a pull request.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "https://pypi.org/project/casperfpga", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/casper-astro/casperfpga", "keywords": "casper ska meerkat fpga", "license": "GNU GPLv2", "maintainer": "", "maintainer_email": "", "name": "casperfpga", "package_url": "https://pypi.org/project/casperfpga/", "platform": "", "project_url": "https://pypi.org/project/casperfpga/", "project_urls": { "Download": "https://pypi.org/project/casperfpga", "Homepage": "https://github.com/casper-astro/casperfpga" }, "release_url": "https://pypi.org/project/casperfpga/0.1.3/", "requires_dist": [ "katcp (==0.6.2)", "numpy (<1.17)", "odict", "setuptools", "tornado (<5)" ], "requires_python": "", "summary": "Talk to CASPER hardware devices using katcp or dcp. See https://github.com/casper-astro/casperfpga for more.", "version": "0.1.3" }, "last_serial": 5770304, "releases": { "0.0.17": [ { "comment_text": "", "digests": { "md5": "845338a237cd0987a55d8df730de19bd", "sha256": "7d293a5d23f94e050a54ff12457f111a04fae76498a187ee4729a5505f58b341" }, "downloads": -1, "filename": "casperfpga-0.0.17-cp27-none-any.whl", "has_sig": false, "md5_digest": "845338a237cd0987a55d8df730de19bd", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 213132, "upload_time": "2019-07-16T13:09:18", "url": "https://files.pythonhosted.org/packages/ec/5b/2da364f8b4e0bcce3ccfe50bc44cd2305e2095d4ace6f385207f5b0f1983/casperfpga-0.0.17-cp27-none-any.whl" }, { "comment_text": "", "digests": { "md5": "283e04facd2b8a605913b64fc20a2a77", "sha256": "10dcadaf74bb989c7d67546a7074ca9f96bf38cb6e8eaaf8214fb4b7200b2f10" }, "downloads": -1, "filename": "casperfpga-0.0.17-py2.7-linux-x86_64.egg", "has_sig": false, "md5_digest": "283e04facd2b8a605913b64fc20a2a77", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 204361, "upload_time": "2019-07-16T13:09:21", "url": "https://files.pythonhosted.org/packages/07/39/941175382833919de20d8dfe4d2520b59d00657cbd4d87c318ffd6107cc5/casperfpga-0.0.17-py2.7-linux-x86_64.egg" } ], "0.0.20": [ { "comment_text": "", "digests": { "md5": "e1f0224d507eb43502e47f9ef3af5bd7", "sha256": "0702bb22cefa26d5f79f7677c45b86c5f36a52f55b976930d76b32a0fd6d6c64" }, "downloads": -1, "filename": "casperfpga-0.0.20-cp27-none-any.whl", "has_sig": false, "md5_digest": "e1f0224d507eb43502e47f9ef3af5bd7", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 214821, "upload_time": "2019-07-17T17:08:40", "url": "https://files.pythonhosted.org/packages/11/8a/d8b2516aeec02717a79ca6feca610d80145541a9cda01563f6c775260c16/casperfpga-0.0.20-cp27-none-any.whl" }, { "comment_text": "", "digests": { "md5": "04c7ac89f82915493d0a9bea11a92e56", "sha256": "9db498d5e4cea349a4837a36491b06962ee66435d35b5b789b43493425df0360" }, "downloads": -1, "filename": "casperfpga-0.0.20-py2.7-linux-x86_64.egg", "has_sig": false, "md5_digest": "04c7ac89f82915493d0a9bea11a92e56", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 206053, "upload_time": "2019-07-17T17:08:44", "url": "https://files.pythonhosted.org/packages/d7/10/c7d9664db7500f265c7a69bfdd94c3cfeff054bdffcc83111547837d389d/casperfpga-0.0.20-py2.7-linux-x86_64.egg" } ], "0.0.22": [ { "comment_text": "", "digests": { "md5": "579ae439c4d7be2a14c48dd1984e8e22", "sha256": "4f4ee99a54d96fccbb28d003acfb36133d2c84da841189b84a7e090c6e4084fc" }, "downloads": -1, "filename": "casperfpga-0.0.22-cp27-none-any.whl", "has_sig": false, "md5_digest": "579ae439c4d7be2a14c48dd1984e8e22", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 214811, "upload_time": "2019-07-18T09:42:29", "url": "https://files.pythonhosted.org/packages/7b/9b/e04d1a82a8085a17c31cfc71991229de22bb93883446e02cc283d8bed386/casperfpga-0.0.22-cp27-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b48f045a83bf90e3af7064748dce8503", "sha256": "68b137232ae725735e686dd697492f61d535aa0490a4ab6c887b8775b156f875" }, "downloads": -1, "filename": "casperfpga-0.0.22-py2.7-linux-x86_64.egg", "has_sig": false, "md5_digest": "b48f045a83bf90e3af7064748dce8503", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 206046, "upload_time": "2019-07-18T09:42:32", "url": "https://files.pythonhosted.org/packages/8b/6e/aa0f91292063bec850aeab8c65b0789212b254e181022869a30a4977f912/casperfpga-0.0.22-py2.7-linux-x86_64.egg" } ], "0.0.26": [ { "comment_text": "", "digests": { "md5": "75dacc80c8699d40c8622fbe0fbda352", "sha256": "64f246c113fadbe27921395892e5bc4fa0fe55ce5294b14025cf7701dcd1fe46" }, "downloads": -1, "filename": "casperfpga-0.0.26-cp27-none-any.whl", "has_sig": false, "md5_digest": "75dacc80c8699d40c8622fbe0fbda352", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 214797, "upload_time": "2019-07-18T13:39:59", "url": "https://files.pythonhosted.org/packages/38/44/67ef0410257c5eb11fea39f0cf1873d47b44271f0748c2ed9fabc12f741e/casperfpga-0.0.26-cp27-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c9a437b49df743b68073cb11c1fe7730", "sha256": "fecd0ea0b344a66c01451510b5ad8a564f1f0a7d18c8ed507701f5b1d5db3df4" }, "downloads": -1, "filename": "casperfpga-0.0.26-py2.7-linux-x86_64.egg", "has_sig": false, "md5_digest": "c9a437b49df743b68073cb11c1fe7730", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 206035, "upload_time": "2019-07-18T13:40:01", "url": "https://files.pythonhosted.org/packages/77/32/c3d7400399cd697981afe5635e3d4246a91858ef129aeddd8489750a9a9d/casperfpga-0.0.26-py2.7-linux-x86_64.egg" } ], "0.0.27": [ { "comment_text": "", "digests": { "md5": "2c726a00c87703070a1c48017a40cd8c", "sha256": "befa60aa905a0a4d355355184136ab0665e6ff248c13e346960dde0d13005280" }, "downloads": -1, "filename": "casperfpga-0.0.27-cp27-none-any.whl", "has_sig": false, "md5_digest": "2c726a00c87703070a1c48017a40cd8c", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 214804, "upload_time": "2019-07-18T13:51:51", "url": "https://files.pythonhosted.org/packages/17/65/a8500eb76a4dca1cf74cdcaa4d30c6feff613f2e75d812b50cd575fae142/casperfpga-0.0.27-cp27-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ffb16a4549bef21018083ac32f9915a4", "sha256": "bc06371728b3ca09602d6dedb553023eda331afd11fdfeea548c37cbac6ca4f0" }, "downloads": -1, "filename": "casperfpga-0.0.27-py2.7-linux-x86_64.egg", "has_sig": false, "md5_digest": "ffb16a4549bef21018083ac32f9915a4", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 206043, "upload_time": "2019-07-18T13:51:54", "url": "https://files.pythonhosted.org/packages/58/58/fb46caf5e82a95f8b5374c35e920057a5475df9a99b15937e1f21520ebd9/casperfpga-0.0.27-py2.7-linux-x86_64.egg" } ], "0.0.28": [ { "comment_text": "", "digests": { "md5": "5de4f8fd9ee5dcf94435a79d87a4e5ea", "sha256": "c1cc7e73307da3c131bfa33eb0635969db39d956eeb57de91f78fc188ab55a02" }, "downloads": -1, "filename": "casperfpga-0.0.28-py2.7-linux-x86_64.egg", "has_sig": false, "md5_digest": "5de4f8fd9ee5dcf94435a79d87a4e5ea", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 404280, "upload_time": "2019-07-22T09:09:12", "url": "https://files.pythonhosted.org/packages/c8/9e/ff9ed667022c94cc830a8c8797c59d2c12476ede8251599337a35f6c8373/casperfpga-0.0.28-py2.7-linux-x86_64.egg" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "ce78ccb79844471fd7d1092a00da683e", "sha256": "3fedbf0b497b42aaa91f13da03c05c452132b78fe2ccfb959c1533c4c7a3fb83" }, "downloads": -1, "filename": "casperfpga-0.1.0-cp27-none-any.whl", "has_sig": false, "md5_digest": "ce78ccb79844471fd7d1092a00da683e", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 213828, "upload_time": "2019-07-22T12:19:52", "url": "https://files.pythonhosted.org/packages/e7/d8/e5c95b283dcf27f1b51f02314773c3a4855fa27f323d76cf4c7a93df9f5c/casperfpga-0.1.0-cp27-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7bce8c2c6ae21f38eb4ded09a6e6713e", "sha256": "633e2cbe818a60ab95f49a054b4f77def34368dab2769aa4450f371500d72e67" }, "downloads": -1, "filename": "casperfpga-0.1.0-py2.7-linux-x86_64.egg", "has_sig": false, "md5_digest": "7bce8c2c6ae21f38eb4ded09a6e6713e", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 205353, "upload_time": "2019-07-22T12:19:55", "url": "https://files.pythonhosted.org/packages/c7/bc/e0fc27e89900f69b1ae506424234c20f3b8710c2e75ebb8e7a2e245dcd93/casperfpga-0.1.0-py2.7-linux-x86_64.egg" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "657a383b5c67ada8cd289fe559848035", "sha256": "90e268c73ce48f3f9e653304d864c9afd0dbf694a30e8dbfd63775171b06854d" }, "downloads": -1, "filename": "casperfpga-0.1.1-cp27-none-any.whl", "has_sig": false, "md5_digest": "657a383b5c67ada8cd289fe559848035", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 250318, "upload_time": "2019-07-22T13:39:39", "url": "https://files.pythonhosted.org/packages/74/46/43d704d2c38d455db4a27c205534884c15e62a37af139357b5f8346a8e96/casperfpga-0.1.1-cp27-none-any.whl" }, { "comment_text": "", "digests": { "md5": "14a0999174051bcb9e00441ac0b6d271", "sha256": "92bc276a0418f3166c424c913067c00c31d933d13420938e800ff7073176d7cb" }, "downloads": -1, "filename": "casperfpga-0.1.1-py2.7-linux-x86_64.egg", "has_sig": false, "md5_digest": "14a0999174051bcb9e00441ac0b6d271", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 241402, "upload_time": "2019-07-22T13:39:41", "url": "https://files.pythonhosted.org/packages/17/16/4be344c6a32e91bba6ddd9cbf6abe1793eba14318bff9be4f99a85ff3a37/casperfpga-0.1.1-py2.7-linux-x86_64.egg" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "482462a875745f8a2ec1a948ff1073fe", "sha256": "63ddcbad4fa5549318713f3b339a262dd534d2a77fab96cb333ba952698353be" }, "downloads": -1, "filename": "casperfpga-0.1.2-cp27-cp27mu-any.whl", "has_sig": false, "md5_digest": "482462a875745f8a2ec1a948ff1073fe", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 250579, "upload_time": "2019-07-25T10:05:40", "url": "https://files.pythonhosted.org/packages/0a/80/e8d79668b32d7dc74d4193dc1fcccaa056a463bb6ae51e0318eb0bf8abdb/casperfpga-0.1.2-cp27-cp27mu-any.whl" }, { "comment_text": "", "digests": { "md5": "36d03c65d46ee81e7bf7b575b3aa3d42", "sha256": "25eef80ce2b12c2f4d1cdce3aa157da0e70a65b83197a3465e463db0e1795cf3" }, "downloads": -1, "filename": "casperfpga-0.1.2-py2.7-linux-x86_64.egg", "has_sig": false, "md5_digest": "36d03c65d46ee81e7bf7b575b3aa3d42", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 241666, "upload_time": "2019-07-25T10:05:43", "url": "https://files.pythonhosted.org/packages/88/00/b49dd192e2831fa2a711ddc3909ee197b519d86d94d969b97ca5ad9083a3/casperfpga-0.1.2-py2.7-linux-x86_64.egg" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "36058a482d2db8f8027d8447717fe7e7", "sha256": "a34d3806ff96852d36bf329c329bfe10b2ff161061a3d397c1c5028a262d6d6b" }, "downloads": -1, "filename": "casperfpga-0.1.3-cp27-cp27mu-any.whl", "has_sig": false, "md5_digest": "36058a482d2db8f8027d8447717fe7e7", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 258994, "upload_time": "2019-09-02T11:16:39", "url": "https://files.pythonhosted.org/packages/ea/ad/453b364386623382466cb1daa3b2b9c49c85179e8977d7f92de161795a72/casperfpga-0.1.3-cp27-cp27mu-any.whl" }, { "comment_text": "", "digests": { "md5": "ada2517805a72a58d48485258cfe914b", "sha256": "fdb3f0e6901cb83dfe67008b7c991e7dbd264c8f35d4a423498275ec115e2a16" }, "downloads": -1, "filename": "casperfpga-0.1.3-py2.7-linux-x86_64.egg", "has_sig": false, "md5_digest": "ada2517805a72a58d48485258cfe914b", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 513063, "upload_time": "2019-09-02T11:16:42", "url": "https://files.pythonhosted.org/packages/5c/78/8817d94d59c24883114577ed1125dc3e87be703ba04830466acca4f422d1/casperfpga-0.1.3-py2.7-linux-x86_64.egg" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "36058a482d2db8f8027d8447717fe7e7", "sha256": "a34d3806ff96852d36bf329c329bfe10b2ff161061a3d397c1c5028a262d6d6b" }, "downloads": -1, "filename": "casperfpga-0.1.3-cp27-cp27mu-any.whl", "has_sig": false, "md5_digest": "36058a482d2db8f8027d8447717fe7e7", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 258994, "upload_time": "2019-09-02T11:16:39", "url": "https://files.pythonhosted.org/packages/ea/ad/453b364386623382466cb1daa3b2b9c49c85179e8977d7f92de161795a72/casperfpga-0.1.3-cp27-cp27mu-any.whl" }, { "comment_text": "", "digests": { "md5": "ada2517805a72a58d48485258cfe914b", "sha256": "fdb3f0e6901cb83dfe67008b7c991e7dbd264c8f35d4a423498275ec115e2a16" }, "downloads": -1, "filename": "casperfpga-0.1.3-py2.7-linux-x86_64.egg", "has_sig": false, "md5_digest": "ada2517805a72a58d48485258cfe914b", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 513063, "upload_time": "2019-09-02T11:16:42", "url": "https://files.pythonhosted.org/packages/5c/78/8817d94d59c24883114577ed1125dc3e87be703ba04830466acca4f422d1/casperfpga-0.1.3-py2.7-linux-x86_64.egg" } ] }