Skip to content
/ QMS Public

UNIX course project to automate Quartus and ModelSim operations through shell scripting

Notifications You must be signed in to change notification settings

apast005/QMS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

93 Commits
 
 
 
 

Repository files navigation

Contributors Forks Stargazers Issues MIT License LinkedIn


Logo

FIUCIS-CDA UNIX Student Project

UNIX project to automate Quartus and ModelSim operations through shell scripting
Explore the docs »

View Demo · Report Bug · Request Feature

Table of Contents

About The Project

Product Name Screen Shot

UNIX course project to automate the installation of Intel's Quartus and ModelSim for Linux Ubuntu 20.04. Necessary library dependencies for installation are checked and installed. Hardware components downloaded from FIUSCIS-CDA GitHub will also download the dependencies for the hardware to operate. Documentation will also be converted to man pages to be more readily accessed by the community.

Any feedback/suggestions to make this project a useful contribution to the open source community is greatly appreciated! My main goal is to ease the use of Quartus and ModelSim for educational purposes and create polished shell scripts for anyone to use.

Most of the README will be updated as the project progresses. The majority is still in a template format derived from this github.

Getting Started

To get a local copy up and running follow these simple steps.

Prerequisites

  1. 32bit libraries to install
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386
sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0
sudo apt-get install build-essential
sudo apt-get install gcc-multilib g++-multilib lib32stdc++6 lib32gcc1 \

expat:i386 fontconfig:i386 libfreetype6:i386 libexpat1:i386 libgtk-3-0:i386 \

libcanberra0:i386 libice6:i386 libsm6:i386 zlib1g:i386 libx11-6:i386 \

libxau6:i386 libxdmcp6:i386 libxext6:i386 libxft2:i386 libxrender1:i386 \

libxt6:i386 libxtst6:i386
  1. Go to Quartus ModelSim download site
  2. Select Edition: 'Lite'
  3. Select OS: 'Linux'
  4. Select 'Individual Files' tab and download Quartus and ModelSim .run files

Installation

  1. Install git
sudo apt update && sudo apt upgrade
sudo apt install git
  1. Clone the repo
git clone https://github.com/apast005/QMS.git
  1. Download freetype
  2. Extract freetype .tar.bz2 file
  3. Then run the following set of commands
cd  ~/Downloads/
cd  freetype-2.4.12
./configure -- build=i686-pc -linux-gnu "CFLAGS=-m32" "CXXFLAGS=-m32" "LDFLAGS=-m32"
make -j8
  1. Go to modelsim_ase directory. Below is where my modelsim_ase directory was located
cd ~/intelFPGA/20.1/modelsim_ase
  1. Once there, make a lib32 directory
mkdir lib32
  1. Copy files from freetype to new lib32 folder inside modelsim_ase
sudo cp ~/Downloads/freetype-2.4.12/objs/.libs/libfreetype.so* ./lib32

Usage

Use this space to show useful examples of how a project can be used. Additional screenshots, code examples and demos work well in this space. You may also link to more resources.

For more examples, please refer to the Documentation

Roadmap

  1. Increase Usability

    • Download the appropriate components from GitHub and produce useful messages and/or log files for users as appropriate.
    • Outputs of these test benches also should be displayed in the terminal or into log files in ways that make sense
    • A user should be able to turn interactive mode on or off (for * Example: Windows users executing these test benches over Putty
  2. Automate component integration/testing

    • Automate this process through scripts that could process these dependency files and check if dependencies have been installed
    • Test benches for components should be automatically executed upon installation to validate a working component.
  3. Documentation is in PDF table that specifies the module name, dependencies, inputs, outputs, and an English description of the component.

    • Alternative environment for documentation like Unix “man” pages.
  4. See the open issues for a list of proposed features (and known issues).

Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

This is my first time trying Shell Scripting to automate a task. Any feedback/suggestions is greatly appreciated and I thank you for taking the time to help me grow and provide a contribution to the open source community.

Below is a template from a README template I used that is listed in Acknowledgments

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under the MIT License. See LICENSE for more information.

Contact

Alex Pastoriza - apast005@fiu.edu

Project Link: https://github.com/apast005/QMS

References

Acknowledgments