Resumen
Con el incremento en complejidad y miniaturización de los sistemas computacionales actuales, su diseño se ha vuelto cada vez más difícil y lento. Para ello se necesitan modelos óptimos, y desarrollados tempranamente para probar los componentes. Para poder crear modelos automáticamente, se necesitan estructuras de datos y herramientas adecuadas. Si el modelo está bien declarado, con reglas y estructuras definidas, es posible crear un algoritmo que lo genere automáticamente. La principal consecuencia de la automatización es que el diseñador pasa a tomar decisiones más importantes de diseño: puede decidir cambiar la arquitectura y rápidamente ver los resultados del desempeño del sistema, aumentando su productividad. Para lograr la generación, se definió un estilo de modelaje y una estructura de datos que capturara todas sus características. Luego se implementaron algoritmos en C++ en una herramienta para generar modelos usando como entrada una aplicación en C y especificaciones de la arquitectura del sistema. La salida consistió en un modelo ejecutable del sistema en SystemC. Se seleccionaron dos aplicaciones industriales como prueba: un decodificador MP3 y un decodificador H264. La herramienta generó los modelos en una fracción de segundo, y estos simularon exitosamente con la misma calidad que el modelo en C original.
Citas
Baghdadi, A., Zergainoh, N., Cesario, W., & Jerraya, A (2002). Combining a performance estimation methodology with a hardware/software codesign flow supporting
multiprocessor systems. IEEE Transactions on Software Engineering, 28:822–831.
Bruschi, F., Di Nitto, E., & Sciuto, D. (2003) SystemC code generation from uml model. Proceedings Int. Forum on Specication and Design Languages. FDL'04, Frankfurt.
Cai, L., & Gajski, D. (2003). Transaction level modeling: an overview. CODES+ISSS '03: Proceedings of the 1st IEEE/ACM/IFIP International Conference on Hardware/software Codesign and System Synthesis, pp. 19–24.
Donlin, A. (2004). Transaction level modeling: Flows and use models. CODES+ISSS '04: Proceedings of the 2nd IEEE/ACM/IFIP International Conference on Hardware/
software Codesign and System Synthesis, pp. 75–80
Findenig, R. (2013). Transcation-Level Modeling and Refinement Using State Charts. Springer-Verlag, Berlin Heidelberg.
Gaither, D. (2013). Toward Denotational Semantics of Domain-Specific Modeling Languages for Automated Code Generation. Springer-Verlag, Berlin Heidelberg.
Grotker, H (2002). System Design with SystemC. Kluwer Academic Publishers , Norwell, MA.
Ghenassia, F (2005) Transaction-Level Modeling with SystemC: TLM Concepts and Applications for Embedded Systems. Springer.
Kangas, T (2006) Uml-based multiprocessor soc design framework. ACM Transactions on Embedded Computing Systems, 5(2):281–320.
Ogawa, O., Bayon de Noyer, S., Chauvet, P., Shinohara, K., Watanabe, Y., Niizuma, H., Sasaki, T., & Takai, Y (2003). A practical approach for bus architecture optimization at transaction level. DATE '03: Proceedings of the conference on Design, Automation and Test in Europe, p 20176.
Sarmento, A., Cesario, W., & Jerraya, A. (2004) Automatic building of executable models from abstract soc architectures made of heterogeneous subsystems. Proceedings of
the 15th IEEE International Workshop on Rapid System Prototyping.
Wu, M. (2010) Automatic Generation of Software TLM in Multiple Abstraction Layers for Efficient HW/SW Co-simulation.
Proceedings of the Design Automation and Test in Europe 2010.