miércoles, 16 de julio de 2014

Install Alliance CAD Tools into CentOS

Introduction:

Alliance CAD Tools is a set of free and open computational tools for Integrated Circuit design and simulation. This set of programs offers a good first glance into the world of ASIC and VLSI design for starters who want to familiarize themselves with this branch of the industry. There are even some enterprises which use this set of tools in a professional way along with the well known academic use some schools give to these tools.

Anyway, due to the fact that the original proyect has become unattended and the lack of true updates, there is great difficulty to port this tool set into some new distros and even the distributions that have Alliance CAD into their repositories (like Fedora Electronic Lab) suffer from some troubles that haven't been solved over the years. This is why I've decided to make a little script that automates the task of properly installing the tools and helps configuring the enviroment variables in the system that the tools need.

Justification:

Installing Alliance CAD on Linux using any relatively recent distro is a demanding task. Even when there are some pre-compiled packages (deb and rpm) for some particular distros like Ubuntu or Fedora, they are not well integred into the system (lack of enviroment variables, outdated libraries, etc). Even the versions that one can find in EPEL and Fedora Electronic Lab give some errors when executing the tools.

Solved Problems:



  • The biggest issue with Alliance was that ASIMUT wasn't working, specially using the 64bit version of the tools-set. This was due to errors in the code and some incompatibilities of the binaries with some new libraries. To solve this problem, the script downloads the precompiled binaries (both 32bit and 64bit versions) and replaces the 64bit version of ASIMUT with its 32bit counterpart, wich works perfectly into 32bit and 64bit systems. 
  • Other error was that DRUC couldn't run in some cases when performing automated sinthesis using a make-file. This was due to some environment variables not properly declared or not declared at all. To solve this, the script declares all the necessary variables in each user's bashrc file.


Considerations:


  • This particular script has been developed for 64bit systems, and specially for CenOS 6.4, but you can edit the script to make it work into almost any system you want if you know what are you doing.
  • The script installs Alliance globaly, but the environment variables are declared locally for each user, so each user that wants to use the tools, needs to run the script (that will ommit installation of the binaries if they are already installed).
  • You need to run the script as root user.



Instalar Alliance CAD Tools en Centos mediante Scripts

Introducción:

Alliance CAD Tools es un conjunto de herramientas computacionales abiertas y gratuitas para el diseño y simulación de Circuitos Integrados (CI) mediante planos de Layout. Este conjunto de software ofrece una buena aproximación para los entusiastas para entrar al mundo del diseño de CI y familiarizarse con las aplicaciones que irán encontrando en esta rama de la investigación/desarrollo. Hay incluso algunas empresas en forma que usan estas herramientas de manera regular y ni se diga a nivel de investigación y desarrollo académico, que es su fuerte.

Sin embargo, debido a que el proyecto se ha descontinuado por los desarrolladores oficiales y no han habido verdaderas actualizaciones en el código, existe una gran dificultad para hacer funcionar el conjunto de herramientas Alliance CAD en las distros que no las incluyen por defecto en sus repositorios, como lo hace Fedora Electronic Lab. Por este motivo, he decidido desarrollar un pequeño conjunto de scripts que automatizan esta tarea para facilitar a los usuarios de diferentes distribuciones el tener este software en su SO sin la necesidad de cambiar de distribución o virtualizar un SO completo en sus computadoras.

Justificación:

Instalar Alliance en Linux con una distro relativamente actual es un trabajo bastante arduo. El proyecto original detuvo su desarrollo en el año 2005 y, aunque la última compilación (a la fecha) del código es del año 2009, no se introdujeron cambios efectivos del código.

Aunque existen algunos paquetes precompilados de Alliance CAD para algunas distros particulares como Debian o Ubuntu, su compatibilidad con el sistema no me ha dejado satisfecho y siempre se presenta algún problema de dependencias. Incluso la versión que viene en los repositorios de EPEL y Fedora Electronic Lab presenta problemas al usar el simulador ASIMUT, que da salidas en blanco ante las simulaciones.

Problemas resueltos:


  • El principal problema que se tenía en el posgrado donde usé Alliance fue que ASIMUT no podía realizar simulaciones correctamente. Esto se debe a que el binario de la aplicación no funciona en la arquitectura de 64 bits. Para resolver este error, el script que presento descarga tanto las versiones de 32 como de 64 bits de Alliance y reemplaza el binario de ASIMUT de 64 bits con el de 32, pero sin comprometer las bibliotecas de ninguna de las dos versiones, manteniendo todo en órden para que se pueda ejecutar transparentemente todo el conjunto de herramientas.
  • Un problema que se presenta con las versiones de repositorios de Alliance es que (hasta el momento de la publicación de esta entrada) las variables de ambiente que se necesitan para que las herramientas funcionen, no se definen correctamente o no se definen siquiera. Para compensar este error, el script se encarga de modificar el archivo de configuración del usuario (bashrc) para declarar las variables de manera correcta.
  • Otro detalle importante al usar los repositorios por defecto, es que la documentación y los ejecutables de las herramientas se deben instalar por separado, pero debido a que la documentación incluye los tutoriales y ejemplos que deberían ser parte integral del conjunto de herramientas, los usuarios que apenas comienzan en este mundo usualmente no se dan cuenta de que falta de instalar una parte vital del proyecto Alliance.


Consideraciones:


  • El script se ha desarrollado para el SO Centos 6.4 y se recomienda su uso sólo para esta distribución ya que no se ha probado aún con otras versiones.
  • El script está pensado para instalar Alliance CAD Tools en un SO con una arquitectura de 64 bits, aunque algunas modificaciones pueden hacerse e instalar las herramientas en un SO de 32 bits sin problemas.
  • El script instala las herramientas de manera global, pero las variables de ambiente se definen por usuario, así que cada usuario que desee usar Alliance deberá ejecutar el script en su sesión.

El Script (por fin)

El script es de uso libre y lo pueden descargar aquí pero agradecería retro-alimentación de parte de quienes lo usen para saber qué cosas se pueden mejorar o se deberían cambiar. Recuerden dar permisos de ejecución al script y ejecutarlo como root.




Hacer ROOT a tablet Vorago TBT-302

Hace ya un tiempo me compré una tablet de la marca Vorago, el modelito TBT-302 que es un clónico en apariencia del Ipad Mini. Obvio, al ser una tablet de una marca mundialmente desconocida, las prestaciones no son muy buenas. La velocidad del sistema es bastante mala y tarda mucho en despertar "completamente" tras suspenderla.

Para comenzar a experimentar con opciones para mejorar el rendimiento hay que hacer root como nuestro señor Crom de la montaña manda, pero me encuentro con la desagradable sorpresa de que el chipset que tienen estas tablets (Rock Chip RK30XX) no es nada fácil de rootear por medios comunes.

Tras investigar un poco y obviar soluciones que implicaban un millón de pasos en Linux o muchas operaciones riesgosas en Windows con software que igual podía dejar inservible el aparato, me encontré con una opción increíblemente sencilla y eficiente. Para rootear la tablet sólo hay que seguir los siguientes pasos:


  1. Conseguir el software de Cydia Impactor, que es lo que yo usé para hacer el root. Lo descargamos desde la página oficial para el SO que más nos guste, aunque yo sólo lo he probado en Windows.
  2. Conectamos nuestra tablet en modo de depuración USB pero sin activar la conexión USB (sólo enchufen la tablet, no hagan nada más).
  3. Extraemos el software de Cydia y lo ejecutamos. Tras esto tendremos una ventanita como la mostrada arriba.
  4. En el menú "USB" seleccionamos el "driver scan" y nos preguntará si deseamos crear un driver para el TBT-302, le decimos que sí (tardará un par de minutos)
  5. Una vez creado el driver (el sistema de Windows nos dirá que se creó), procedemos a rootear sólo dando en la opción "start" de la ventana principal  y comenzará el proceso. En mi caso todo tardó unos 5 minutos.