基于Libero SoC v11.4开发环境的中断产生器设计与仿真
本文利用2014年7月21日发布的Libero SoC V11.4最新版本的开发工具来创建一个中断产生器的设计。通过配置一个SmartFusion的微控制子系统、在微控制子系统中配置计时器,生成一个中断产生器的设计。最后执行综合仿真验证了中断产生器设计的正确性。
【关键词】Libero 中断产生器 合成仿真
随着单芯片容量增大、体积减小,芯片的功能也逐步增加,因此芯片的开发环境工具Libero版本也要逐步升级。Actel公司2014年7月21日发布了新的Libero SoC V11.4版本[1]后,从Actel公司网站上下载的中断产生器实例工程不能在Libero SoC V11.4版本上运行,本文在新的Libero SoC V11.4版本上一步一步地修改演示了该中断产生器实例设计和仿真的全过程。
1 中断产生器的框图描述
中断产生器是有一个嵌入式微控制子系统(MSS)模块和两个定时器模块组成。两个定时器Timer1和Timer2是内部中断源,其定时不同,由同一10MHz的时钟源控制。外部中断由外部的Switch信号控制。Timer1连接到MSS的FABINT端,而Timer2连接到MSS的GPIO_0端。无论哪一个中断源(Timer1,Timer2或Switch),处理器将执行相应的中断服务程序,并且中断源的信息在超级终端器打印出来。
2 中断产生器的设计
点击桌面上双击Libero SoC V11.4快捷键,来建立一个新的项目。然后配置一个SmartFusion的微控制子系统。双击Interrupt_MSS_GPIO_MSS_0,打开SmartDesign MSS配置器,对MSS的外设进行配置。禁用如下外设有External Memory Controller、ACE、MAC、UART_1、SPI_0、SPI_1、I2C_0、 I2C_1、Fabric Interface、WATCHDOG。然后配置计时器,产生中断产生器的设计。在设计中需要定时器(Counter)模块,定时器在SmartGen核的目录(Catalog)中的Basic Blocks里列出,计数器是基本块。首先配置一个20Bit的Timer_0计数器,点击Generate,出现一个窗口。在图的核名框中输入Timer_0,然后点击OK,在画布的Interrupt_MSS_GPIO界面中出现定时器Timer_0_0模块。按照配置一个20bit的Timer0计时器的操作步骤,再配置一个具有21bit的Timer_1计数器。两个计数器配置好后。用菜单上的按钮将两个计数器与微控制子系统相连。
3 合成仿真
点击Project >Project Settings,在Simu-lation options下选择DO File,将模拟运行的时间设为1ms(将框中的1000ns修改为1ms,再点击右上角的Save。在同样的Simulation Options下, 单击Waveforms,在Log all signals in the design前打勾,点击右上角的Save,单击右下角的Close。 在Design Flow窗口,展开Verify Pre-Synthesized Design,右键点击Simulate,选择Open Interactively,来启动图形用户界面(GUI)中的ModelSim。在Design Flow窗口,重新上面的步骤进行操作,就会出现正确的ModelSim Microsemi仿真界面。选择此界面左边的sim,展开设计层次,选择Timer_1_0, Ctrl+click 来选择Aclr , Clock, Q and Tcnt, 这四个信号没连续分布,要在Objects中找,找到后选择Add > To Wave > Selected Signals,将四个信号放入波形窗口,两个定时器的输出信号波形如图1所示。
4 结束语
本文的设计对初学Libero工具软件来创建一个简单的设计,或对已经学习了Libero旧版本想要用LiberoV11.4新版本来创建新工程的设计和仿真都是有益的。
参考文献
[1]Actel公司.Libero_SoC_v11-4_Release_
Notes.http://www.microsemi.com/products/fpga-soc/design-resources/design-software/libero-soc#downloads,2014(07):21.
[2]Actel公司.LiberoSoC_QS_DF. http://www. microsemi.com/products/fpga-soc /design-resources/design-software/libero-soc#documents,2014(06).
作者简介
黄显高(1955-),男,西安交通大学工学博士。现为广东科技学院机电系教师。
作者单位
1.广东科技学院 广东省东莞市 523083
2.长安大学信息工程学院 陕西省西安市 710064
3.长安大学计算机中心 陕西省西安市 710064