• Aucun résultat trouvé

Classe de 1ere ST2S et enseignement optionnel de seconde

O MCell [40], ou Mirek’s Cellebration, é uma aplicação de software desenvolvida por Mirek Wojtowics para Windows e publicada em Abril de 1999. A aplicação suporta uma vasta variedade de ACs, unidimensionais e bidimensionais, e tem também uma interface gráfica para o utilizador interagir com as suas funcionalidades. Destacam-se as seguintes:

• Suporte para ACs unidimensionais e bidimensionais e até 256 estados por célula.

• Suporte de 14 famílias distintas de ACs, entre as quais o Jogo da Vida, Gerações, ACs unidimensionais de Wolfram, General Binary, Neumann binary, Regras Especiais e entre outras.

• Biblioteca vasta de regras predefinidas para cada família.

• Suporte para diferentes tipos de vizinhanças (Moore 8 e 9, von Neumann 4 e 5, Hexagonal e entre outros).

2.5 Aplicação de autómatos celulares em software 29

• Interface gráfica intuitiva e simples de utilizar para manipulação de ACs.

• Suporte para vários formatos de ficheiros para leitura e escrita (versões anteriores do MCell, RLE e outras aplicações de simulação de ACs).

• Suporte para customização de regras para ACs a partir de ficheiros DLL (Dynamic-Link Library).

• Explorador de regras de ACs, a partir de um menu dedicado, da biblioteca armazenada no diretório de trabalho da aplicação.

• Análise de dados estatísticos e outros.

• Manipulação de padrões de um AC e edição do seu estado enquanto uma simulação decorre. Na figura 2.12, ilustra-se a interface gráfica da aplicação.

Capítulo 3

Especificação dos Sistemas de Controlo

de Software e Hardware

Neste capítulo introduzem-se aspetos relativos à funcionalidade que os Sistema de Controlo de Software (SCS) e o Sistema de Controlo de Hardware (SCH) proporcionam. O SCS representa o framework, uma aplicação de software implementada em Java, e posiciona-se como o front-

endpara o utilizador, por meio de uma interface gráfica, que permite especificar parâmetros de

templatesde módulos de hardware descritos em Verilog HDL, isto é, parâmetros que definem a

especificação da arquitetura de hardware, controlar o modo de operação do SCH especificando parâmetros de controlo adicionais e enviar e receber dados processados do SCH para posterior análise. O SCH representa uma plataforma de desenvolvimento de hardware, uma FPGA Spartan6 da Xilinx, cujos circuitos são descritos pelos módulos de hardware pré-construídos parametrizados à medida das necessidades do utilizador.

Na secção 3.1 é feita uma breve introdução ao front-end e ao hardware, ilustrando a sua inte- ração com o utilizador com apoio de um diagrama. Para ilustrar, mais detalhadamente, a interação entre o utilizador, o front-end e o hardware, recorre-se a um diagrama de casos de utilização para descrever as funcionalidades e limitações dos sistemas, na secção 3.2. Na secção 3.3, com recurso a um diagrama de interação, ilustra-se a sequência de passos necessários a realizar ou o cenário típico, de forma intuitiva, desde a especificação de parâmetros dos módulos de hardware até ao arranque de simulações na plataforma de hardware e extração dos respetivos resultados. É feita também, na secção 3.4, uma divisão do SCS e do SCH com um diagrama de blocos, apresentando uma vista de alto nível de ambos os sistemas e dos seus módulos de organização de arquitetura constituintes. Por fim, em jeito de conclusão, na secção 3.5, é feito um resumo de todas as fun- cionalidades e limitações inerentes ao SCH e SCS. A especificação da arquitetura do SCH é feita com detalhe no capítulo 4 e da arquitetura do SCS é feita no capítulo 5.

3.1

Visão geral

Na figura 3.1, é apresentada uma vista geral do funcionamento dos sistemas de controlo de hardware e software, é ilustrada a sua interação mútua e a interação do conjunto formado pelos dois sistemas com o utilizador externo. O utilizador fornece uma especificação para a parametri- zação arquitetura dos módulos de hardware que permite caracterizar esses módulos e modelá-los, constituindo assim uma arquitetura fechada de hardware para as suas necessidades. A especifica- ção envolve definir valores de parâmetros como as dimensões da matriz do autómato celular (AC) e, consequentemente o tipo do AC, o número de bits por célula para a codificação de estado, a condição fronteira, o tipo de vizinhança a suportar e a arquitetura de cada célula, isto é, a regra de transição de estado. Estes parâmetros caracterizam o modelo do AC na sua totalidade e o seu modo de operação.

Fornecida uma nova especificação, são iniciados os procedimentos necessários para obter um ficheiro de bitstream válido à saída, para ser descarregado na FPGA. O processo que envolve os diversos passos designa-se por FPGA Design Flow que, simplificando, se encarrega de pegar nos ficheiros que descrevem os circuitos de hardware dos diversos módulos que constituem a sua ar- quitetura e mapear essas descrições numa área física com as interligações necessárias entre os módulos, respeitando todas as restrições impostas, não apenas temporais mas também arquitetu- rais.

Do lado da aplicação de software, existe uma representação visual do AC num mapa de cores, que permite ao utilizador interagir com ela impondo as condições que pretender de acordo com a especificação previamente fornecida, isto é, os estados das células do AC e também visualizar os resultados obtidos pós-processamento, depois de n iterações. Impostas as condições, a matriz pode ser enviada para a FPGA, em que o meio de comunicação é do tipo série (RS-232), após uma fase de processamento do conteúdo das células em que consiste organizar os bits de estado em múltiplos bytes para a transferência. Por sua vez, do lado da FPGA, assim que a informação de estado das células é recebida, é realizado, também, processamento ao nível dos bytes recebidos, agrupando-os e armazenando-os. Os dados armazenados são lidos e processados pelo bloco de hardware, que contém a lógica associada à matriz do AC e respetivo controlo, e o resultado final é armazenado novamento para posterior leitura. Aquando da leitura do resultado, é realizado o pro- cesso inverso na fase de processamento, em que a informação de estado das células é agrupada em bytes e transferida para a aplicação de software. Por fim, os dados recebidos são novamente pro- cessados de forma a serem representáveis graficamente ao utilizador, isto é, é feita uma separação dos bits de estado das células e estes são representados de acordo com um mapa de cor-estado.

Documents relatifs