恒润科技system generator培训教程2(硬件设计)27
- 格式:pdf
- 大小:1.43 MB
- 文档页数:27
T_Basic_ch.doc 2005-08-25 14:01Training:培训手册(中文)1994 - 2005 COPA-DATA GmbHTraining manual---CN 2Contents目录Training:培训手册 (1)概要 (4)第一项工程 (4)创建一个新的工作平台 (4)创建新工程 (4)工程配置 (6)驱动器 (7)选择和配备驱动器 (7)模拟驱动器 (8)数据类型 (9)创建一个新的简单数据类型 (9)创建新的结构数据类型 (12)变量 (13)创建新的简单变量 (13)创建新的结构变量 (16)模板 (18)创建新的模板 (18)图片 (19)新建图片 (19)图片元件 (20)矢量元件(矢量) (20)功能 (23)功能管理 (23)动态元件 (25)文本按钮 (25)图片功能 (26)数值 (27)条线图 (28)趋势图 (29)仪表 (30)运行(在线操作) (31)启动运行 (31)Training manual---CN 3停止运行 (32)工程的拓展和变更 (32)重新载入 (33)替换一个工程 (33)改变设定值 (33)显示变量状态 (33)运行中重新加载变更 (34)间接图片寻址 (35)脚本结构 (36)功能项“发送值到硬件” (36)脚本自动启动 (37)运行 (38)Training manual---CN 4概要创建工程---定义变量---创建模板和图片—静态和动态单元第一项工程创建一个新的工作平台我们正创建一个新的子目录,此目录适合每个新的工作平台所以,所有重要的文件都可以存放在一个目录下• 选择”文件”菜单里面的”新建”在工作台的属性页面,你可以键入工作台的路径和名称.输入,, C:\”作为路径再输入名称,,工作台”如果此目录不存在,那么在确认了对话框入口后,点击ok来创建目录C:\EXAMPLE,与此同时WORKSPACE.WSP6也已经写入到目录中.创建新工程• 选择”文件”菜单里面的”新建”在工作台的属性页面,你可以键入工作台的路径和名称. 当键入工程名称时,所键入的值将设置为默认目录名.输入工程名” PRO1”,同时认可了默认路径.Training manual---CN 5下面的目录结构在编辑器里创建如同数据库目录般,工作台,工程和编辑器文件的目录能够被快速创建.用户定义的目录能按自己的意Training manual---CN 6愿短时间被创建运行目录在运行第一次启动时就被创建,也就是说,第一时间创建运行文件.如果一个新的工程在运行过程中,配有报警或CEL(顺序事件列表)条目,那么zenOn软件自动创建一个新的子目录,并给计算机和工程设定名称.如C:\EXAMPLE\COMPUTERNAME\PROJECT). 目录中的报警或是CEL 条目以BIN文件的形式存储.目录结构和所包含的文件(即使是扩展文件,如*.bmp, *.jpg, *.txt)不许手改.这些文件借助工程管理中的通道”文件”插入到工程,然后自动拷贝到适当的目录中,并存储在工程数据库里.工程配置• 在工程管理中选择工作平台仔细观察后,会发现工程一列归属于这个工作台.• 在详细的列表中选择工程"PRO1"此时工程"PRO1"的属性在属性窗口显示,并可以在窗口直接编辑属性.在接下来的联系中,我们会经常用动这个属性窗口.他通常提供了3种视图,可以通过顶部图标的切换来选择不同的视图.Quick view快速浏览只显示最重要的属性Group view群组浏览所有属性都在逻辑组里显示All全部属性没有组的形式, 显示所有属性.• 借助第二个图标可以切换到群组浏览• 打开”常规”部分Training manual---CN 7• 将”主窗口类型”的属性,更改为”无标题/全屏”所以,运行的可编程窗口将不带标题栏显示.在属性窗口的下游部分,你可以发现属性选择的一些简短的帮助.如果帮助无法显示,打开属性的关联菜单并激活通道”描述”“打开图片“的属性是定义图片,当运行开始时,“打开图片“也会自动被打开.迄今为止,由于我们还没有画一幅图片,所以属性一直时空的.只要我们在工程里创建了第一幅图片,那么他的名称就会自动被加入.驱动器为了实现同数据源的通讯(PLC领域bus总线,等),必须链接到驱动器上.根据工程对驱动器的需求(通过 )和他们的过程变量必须创建.举例说, 就如同我们现在没有PLC,但是我们要用一台模拟驱动器,他可以自动更改变量的值.难道我们要用像西门子系列的驱动器,没有PLC 连接,只会得到错误的信息.选择和配备驱动器• 在工程管理里,通过鼠标右击激活”变量”的关联菜单.• 选择菜单里的”新建驱动...”驱动器选择的对话框现在是开着的.Training manual---CN 8• 一直向下滚动列表”有效驱动器”,直到你找到”zenOn系统驱动器”为止.• 点击模拟驱动器. 在显示的:”定义驱动器”的对话框里写进”驱动器名”. 点击”OK”确认选择项模拟驱动器COPA-DATA公司对此驱动器进行开发,通常用于模拟值所用的变量和数据与西门子系列的PLC是兼容的.模拟器是由四个确定的变量完成控制的. 因此0到3为变量的存储地址. 这些变量的内容是模式,最大值,最小值,步距(如:步距10表示.模拟驱动计数器从最小值0开始0,10,20,30 以此类推直到最大值1000)Marker 0变量0模式0...模拟停止1...模拟打开 (上升) / 默认值2...模拟打开 (下降)Training manual---CN 93...模拟打开 (升和降)Marker 1变量1 上限0 到65535 默认=1000Marker 2变量2 下限0 到65535 默认=0Marker 3变量3 步距0 到65535 默认=10数据类型变量一方面基于驱动器目标类型,另一方面则基于数据类型.根据所选择驱动器来确定驱动器目标类型. 我们的模拟驱动器类似于西门子S5系列驱动器.我们通常谈及的数据类型是独立于驱动器之外的. 不是所有的驱动器都支持所有数据类型. 只有选择适合你自己驱动器的数据类型才是用用的.另外,预定义数据类型允许创建自己的数据类型. 有两种可能的数据类型 简单数据类型和结构数据类型创建一个新的简单数据类型•在项目管理打开“变量“• 用鼠标右键激活“数据类型的关联菜单.“ • 选择菜单里的”新建简单数据类型”Training manual---CN 10• 在名称栏输入新的简单数据类型名称”FILL L ” • 选择数据基本类型” UINT ”点击"完成"来完称数据类型的创建,现在数据类型的列表中是有效的.• 在列表中选择数据类型"Fill level"现在的属性窗口能看到"Fill level"的属性,我们可以对其属性进行必须的修改.• 打开组的"描述"和”值计算”项.• 在上面的图标中改变数据类型的属性: "最小整数", "十进制", "PLC 值范围" and "线性值调整”PLC 值的范围 例如:fill level 的数字值是12位或16位PLC线性值调整例如:工程中fill level 的模拟值设定是按照PLC值的范围来设定的.范围是最小01,最大6553,51我们现在就定义数据库"Fill level"的限定.• 在属性窗口点,用鼠标右键点击"限定"项.• 在相关菜单中选择”限定插入”.这样就创建了一个命名为”限定[1]”新项.• 打开名为”限定[1]”的项.• 在上面显示的图表中改变限定的属性.• 为数据库"Fill level"创建三个以上的限定限定2: 2000,最小,深蓝色,没有报警 限定3: 4500,最小,暗红色,没有报警限定45500,最大,亮红,报警创建新的结构数据类型• 在项目管理那打开“变量“• 用鼠标右键激活“数据类型的关联菜单.“• 选择菜单里的”新建结构数据类型”• 在名称栏输入新的结构数据类型名称"Valve".完成结构数据类型的创建后,会打开一个对话框.在此对话框里可以创建最初的结构单元.• 在名称栏输入新的结构单元名称"位置".• 选择数据基本类型"USINT". 这个数据类型将被嵌入进去.如果基本数据类型已经嵌入到结构数据类型中,那么数据类型的属性在结构单元中将不受基本数据类型的限制而自由变更.结构单元完成后,结构数据类型在列表中就生效了.现在,我们将为这个数据类型再创建一个结构单元.• 用鼠标右键激活结构类型"Valve"的右键菜单.“• 选择菜单里的”新建结构单元”• 为结构数据类型"Valve"创建另一个结构单元自动/手动:布尔位;嵌入变量过程变量是数据源(PLC,现场总线等)和控制系统之间接口为了实现对过程的检测校对以及开环和闭环控制,过程数据的交换是必须的.一方面是设定点的输入值,另一方面对过程数据的监控管理.过程数据及设定是用来定义单一过程的,输入的变量和参数在变量列表里相互交换.创建新的简单变量• 在项目管理里用鼠标右键激活右键菜单的”变量”.• 选择菜单”新建变量...”已打开的创建变量的对话框.• 输入"H1_Tank1"名称.• 选择数据类型"Fill level".• 确认完成后点击"完成".变量已经添加到变量列表中,变量在项目管理里的有详细的描述. "Fill level"的所有数据类型的属性都是在变量中预定义的. 所选择的变量可以在属性窗口检测和改动• 打开"变量"部分• 如上面图表所示,可以更改变量的属性.名称名称必须是唯一的鉴定名称可能不是唯一的偏移量文字偏移量变量服务器用来显示值按下列属性创建另一个变量.命名模式数据类型UINT偏移量0 信号分辨率:0..3测量范围 0..3?变量服务器用来预定义模拟特性.创建另外3个模拟变量.参照更深层的属性列表.变量列表工程管理的全面浏览应该有两个入口.过程变量采用合理的名称,这样可以使得浏览变得非常方便.现在按照下列设定对模拟驱动器创建新的变量."H1_Tank2", "H2_Tank1" 和 "H2_Tank2"具有与"H1_Tank1"相同的属性,他们偏移量地址分别为12,21和22 . 可以更改2号变量到"Hall 2"的确认.创建新的结构变量现在我们将创建更多的变量,但这次是用到结构数据类型.按上面描述的去处理.• 输入"值"名称.• 选择数据类型"值".• 设定变量"Dim 0"为数组型变量"Array dimensions",且变量值为4.选择一个结构数据类型,设定两个以上的有效变量.• 激活”自动寻址”选项.• 忽律”每个数据类型设定新偏移量”,根据协议的默认设定”激活所有单元”.现在,成功设定了4值的变量 (组变量=4),这里四个值是由两个变量组成()工程管理中的变量列表如下详细列出:模板画图前首先创建模板每幅图片都是以模板为基础模板是基于window技术下的.大致设定如下…♦ 模板尺寸=图片尺寸♦ 图片在屏幕上的位置完成.这样一个通用的版面被创建.提供了大量的优势:♦ 一致图片结构贯穿整个工程♦ 尺寸与位置只能定义一次♦ 改变模板将改变基于模板的全部图片.♦ 模板的功能专门提及(关闭模板,硬拷贝,等等)通常最少创建两个模板1个模板用在主画面1个模板用于吧条创建新的模板• 打开工程管理的”图片”,选择”模板”• 点击右键菜单里的”新模板”项创建新的模板名为“模板_0”的模板是自动创建的. 在属性窗口可以改变模板的设定.模板的尺寸按当前屏幕分辨率默认设定. 现在我们改动这些设定,这样在屏幕的顶部和底端会留下部分空间. 顶部的空间用于状态览,底部空间用于创建吧条.• 按上面所示改动模板的属性. •创建名为”吧条”的模板,用来标识吧条. 模板的尺寸自左/顶 0/700延伸到 右/底 1024/768 .图片一个图片就是一个可以预定义属性的窗口. 每幅图片都是以模板为基础新建图片• 在工程管理中选择”图片”项.• 点击右键菜单里的”新图片”项创建新的图片名为“图片_0”的图片是自动创建的. 在属性窗口可以改变图片的设定.• 在”通用”部分输入图片名”开始图片”并确认该图片属于”标准”window 类.• 在”模板”组中确认,图片与”过程图片”的模板是关联的.• 在工程管理的总览中用鼠标双击图片名来打开新建的图片,或打开关联菜单并选择”打开图片”项.• 现在创建名为” Hall”的图片当然,该图片同样要链接到”过程图片”的模板中.现在创建名为”BB-Start”的图片.模板”吧条”链接到此图片.图片元件一般来说图片中有两种不同类型的元件可以用.Vector elements矢量元件在运行时元件的外观都是保持一致的.Dynamic elements动态元件在运行时元件改变了他们的外观(通常依靠变量值).矢量元件(矢量)文本现在在” START_PIC”内输入文本• 打开菜单"Vect”元件• 选择矢量元件”文本”• 点击鼠标左键,在图片上画文本单元(矩形) ” START_PIC” 3cm 高和7cm宽.文本元件用选择标记标识着.单元的参数现在可以在属性窗口更改如果希望更改属性,只需在图片中选择元件,轻点鼠标右键就可以了.这样属性在属性窗口就是有效的了.对于所有的元件,这个程序都是有效地.• 在”描述/文本”写入的,将是第一个工程.现在我们将为文本单元创建一个新的字体.• 在工程管理中选择”字体”项.• 在详细列表中打开右键菜单并选择”新建字体”.定义字体的标准对话框现在已经打开.• 现在选择”亚洲粗体24”,点击”ok”确定选择.工程管理的详细列表中显示”新字体1”,并且在属性窗口显示新字体的属性.• 将字体命名为”名称”.选择的字体可以被用于所有相关文本单元中.现在就在我们的文本单元种应用此字体.• 在启动画面中选择文本单元,并且在属性窗口打开选择的”标题”.• 选择属性列表右列的”字体”项.字体选择对话框已经打开.• 选择字体”标题”• 点击图表首个图片,可以作为启动画面自动保存到工程配置里.功能新图片可以通过吧条打开.另外,我们将为不同的窗口提供适当的吧条.借住功能可以运行此工程.功能管理功能列表可提供所有有效的变量函数.• 在工程管理中选择”功能”.在工程管理的详细列表中,可以看到空的函数列表.你在这里所创建的函数将被列出.• 在详细列表中打开右键菜单并选择”新建功能”.预定义函数的对话框打开.函数将在各个区域内分类.首先,我们将创建关闭运行的函数.• 打开”应用函数”部分.• 选择”退出程序”函数,并点击ok确认选择.现在该函数已经存放在工程管理的功能列表中,可在属性窗口中更改.因为函数没有更多的参数,所以可以在这里对函数进行定义.接下来,我们将创建切换画面的函数.• 在详细列表中打开右键菜单并选择”新建功能”.• 打开”图片函数”部分.• 选择”图片切换”函数,并点击ok确认选择.函数必须配有参数,此时输入必要函数参数的对话框将自动打开.函数要求图片以一个参数的形式打开.• 选择”启动”图片,并点击ok确认选择.无需更多的参数设定,所以函数定义结束.为图片”BB-Star”和”Hall”创建相应的图片切换函数.动态元件不同于矢量元件,动态元件是改变他们运行时的外观.动态元件习惯被用作显示变量值或是执行功能.文本按钮首先我们将创建”BB-Start”吧条按钮,来实现图片"Start Pic" 和"Hall”之间的切换.• 打开图片” BB-Start”.• 自动态元件菜单里选择”文本按钮”命令. 元件• 点击鼠标左键,可以在画板上画出动态元件” BB_START”(1.5 cm 高和 3 cm 宽)• 在属性窗口打开”文本”单元.• 第一行输入文本”启动”,第二行输入文本” Alt S”.• 现在切换到”元件”部分.• 点击属性列表右列的”功能”项.功能选择对话框已经打开.• 选择该函数”图片切换-启动”. • 点击属性列表右列的”组合键”项.定义组合键的对话框已经打开.在运行过程中,你可以通过点击按钮或是按组合键来执行功能.• 点击输入区键入组合键"Alt S",并点击组合键. • 确认”ok ”.•为图片”Hall ”创建一个相应的按键,配有文本"Hall 1" , "Alt 1"和对应的组合键. 创建另一个功能键”退出程序”,配有文本”退出”和” Alt E ”的组合键.我们为按钮文本提供了自定义的字体,并将此字体应用到工程的所有按钮中. 如果改变字体的尺寸和其他属性,马上就会自动影响到所有按钮.图片功能每幅图片都可以与函数链接,图片打开与关闭时,功能自动执行.借助此功能,我们可以在启动画面上打开吧条• 在工程管理中选择”图片”.• 在工程管理的详细列表中选择图片”启动画面”.• 在属性窗口打开”综合/功能”部分.• 在”启动功能”里面选择”图片切换”.列表的”BB-启动”.不管何时启动画面在运行窗口是打开的,匹配的吧条也是打开的.数值• 打开”启动画面”.• 打开动态元件菜单,选择”数值”命令.• 鼠标左键按住”数值”,在”启动画面”里画一个动态元件 (ca.2 cm 高和 5 cm 宽).变量选择的对话框打开.• 在对话框”变量选择”突出变量”模式”并按下”确定按钮”.• 在属性窗口激活”显示单元”选项.• 为了改变动态元件的尺寸,点击某一标记(鼠标显示双箭头,按下鼠标左键,移动鼠标就可以改变元件的尺寸.)• 为了移动动态的元件,你可以点击他(鼠标变做十字交叉箭头),按下鼠标左键,拖动元件到新的位置.• 点击标识• 打开动态元件菜单,选择”条形图”命令.• 按下鼠标左键,在图片”Hall”内画一个动态元件(ca.7 cm 高和 3 cm 宽).• 在对话框”变量选择”突出变量” H1_Tank1”并按下”确定按钮”.• 在”颜色”选项设定”条行吧”为蓝色.正常情况下吧条颜色保持一致.如果超出限定,其颜色就被定义的限定色所替代.趋势图• 打开动态元件菜单,选择”趋势图”命令.• 按下鼠标左键,在图片”Hall”内画一个动态元件(15 cm 高和 20 cm 宽).动态元件不会立即查询一个变量.因为,有更多的变量选择,这些变量都可以用在单元上.• 鼠标右键点击进入属性窗口,打开关联菜单.• 选择”插入曲线图表”.• 在对话框”变量选择”突出变量” H1_Tank1”并按下”确定按钮”.• 重复上面程序操作,选择变量 "H1_Tank2".现在可在属性窗口找到新项”曲线”• 在属性窗口依次打开”曲线”和”曲线[1]”部分.• 改变”曲线图信息文本”为"Tank 1".• 改变”曲线[2]”文本为"Tank 2".仪表• 打开动态元件菜单,选择”趋势图”命令.• 按下鼠标左键,在图片”Hall”内画一个动态元件(15 cm 高和 20 cm 宽).• 在对话框中选择” H1_Tank2”变量”,并按下”确定按钮”.• 在属性窗口依次打开”外形”和”比例”部分..• 设定”主刻度”为1000,设定”子刻度”为200.刻度值标识:每1000用长刻度标记,每200用短刻度标识.这样,就可以在运行时间看到我们的工程了.运行(在线操作)启动运行有四种运行方式:• 命令,菜单选项”运行”.• 点击按钮用来设定值的标准对话框已经打开,允许你改变变量的值.• 将变量”上限”值设定为65535,点击OK关闭对话框.• 将变量”步宽”值设定为1000,点击OK关闭对话框.在吧条按钮里面,借助按钮”启动图片”和”Hall 1”,可以实现两个过程图之间的切换.• 切换到图片"Hall 1",观察此时动态单元的变化.模拟器切换到开状态,条形图的移动将无法移动.• 返回到”启动画面”.• 将变量”模式”值设定为0,点击OK关闭对话框.• 返回到图片"Hall 1",观察此时动态单元的变化.停止运行• 按”退出”按钮关闭运行.如果未定义关闭运行按钮,或者是窗口标题的吧条是无效的,还可以用组合键"Alt F4"关闭运行. 工程的拓展和变更重新载入我们现在要了解的就是“重新载入“工程.“重新载入“允许我们不必关闭或重启而实现工程的变更.此功能允许运行期间在编辑器内做改动.这些改动将在运行时被重新加载.• 右击”功能”函数选择”新功能”项.• 在打开的窗口中,选择”应用功能”里的”重新载入”功能.在属性窗口,参数右边的默认项是”改变目标对象”.也就是说在执行此功能时,不是全部从新加载而是仅目标对象做改动.• 打开图片” BB-Start”.• 创建新按钮”重新加载”,执行”重新加载”功能.• 运行.• 点击窗口任务条或组合键” Alt Tab”返回编辑界面.紧接着,我们将学习如何应用”重新载入”功能.替换一个工程改变设定值• 打开”启动画面”.• Select the numerical value element for the "Mode".• 在属性窗口打开”设定值”部分.• 改变属性,将”设定值”改换到”元件”.改动“模式“变量值时,运行过程标准对话框将不再被打开.我们可以在单元中直接输入设定值.显示变量状态• 在属性窗口打开”外形”部分.• 激活属性”显示状态”不管何时与PLC的链接断开,动态元件都可以随时给出指示.在元件的右上方显示出一个有色彩的正方形.正方形可以有两种不同的颜色.invisible不显示与PLC链接.red红色驱动器与PLC之间连接被中断.blue蓝色zenOn与驱动器之间连接被中断.运行情况下用鼠标右键点击元件,并保持一段时间的按力,变量的状态将被显示出来.运行中重新加载变更在重新加载变更前,我们必须保存图片,接着创建新的运行文件.• 点击标识间接图片寻址在间接图图片寻址的帮助下,图片可以被重复利用.在打开前提下,这个功能性允许图片变量和功能被替换.对于相同的设备只需创建一幅图片,该图片可以在不同的设定变量或不同的图片切换功能下被打开.• 创建一个新的功能”图片切换”.• 选择图片” Hall”,点击”OK”确认选择.选择图片zenOn时就发现,图片早就包含了变量或函数.所以另一个对话框自动打开.在对话框“替换链接“下面可以看到变量和功能都已包含在图片中.(图片 Hall没有功能.)双击一行可以替换单变量但是如果在工程中有一个通用的结构变量名,那么我们就可以替换整个群组.• 一个源输入"H1*".• 一个目标输入"H2*".• 按下”接受”键,并点击”是的”信息确认.如果替换法是目的,那么目前在部分对话框下部可以检查.在举例过程中,所有变量开始全名为"H1"的都被变量以"H2"开始的全名所替换.• 点击”确定”关闭对话框并且点击”是的”回答接下来的两个提示.• 在图片"BB-Start"里创建了新按钮命名为"Hall 2",并执行刚创建的此功能.脚本结构如果合成几个函数,可以按定义的顺序执行(类似批处理文件),他们将被输入到脚本中.这里有些系统固有的脚本名,他们在系统开启和停止时自动执行.AUTOSTART自动开始在操作启动图片前,脚本已经自动执行运行启动了.AUTOEND自动结束脚本自动执行关闭运行.现在我们可以在自动开始脚本里自动完成上限值和模拟器驱动增量的设定.因此我们首先需要适当的功能.功能项“发送值到硬件”• 创建新功能.• 打开”变量-功能”部分.• 选择功能”发送变量到硬件”.• 选择”上限”变量,并点击ok确认选择.由于此功能需要附加的参数,所以又有新对话框开启.• 值设定为65535.• 激活选项”导向硬件”.选现生效,运行里根本不会给用户改变值的机会,输入的设定值就被直接发送到硬件(=PLC).为变量”增量”定义功能”发送值到硬件”,并设定值为100.脚本自动启动>• 在工程管理中选择”脚本”.• 在详细列表中打开右击菜单并选择”新建脚本”.• 并设定新脚本的名称”自动启动”.点击脚本名前的”+”标识,打开脚本”自动启动”的功能列表.• 在详细列表中打开右键菜单并选择”添加功能”.功能多项选择对话框已经打开.。
一、系统设计仿真结果以及硬件资源估计(用于复制到你的那个txt文件中去即可。
)顶层框图:仿真的波形及收敛曲线:Case1Case2Case3Case4表格一:Actual Number of clock cycles 3: 744: 1295: 94860: 1137表格二:资源利用数Case1Case2Case3Case4二、简要设计介绍整个系统的结构如下所示:进入内部模块则有:其主要由三大部分组成:第一部分:输入信号过寄存器处理第二部分:主要使计算递推公式(本系统的核心模块):第三部分:输出下面主要对第二部分的公式递推解析一下主要分解如下如下几个部分进行计算:()()1111(1)1(1)(1)nnnnAn xn n xxAn xA xx nx-----⨯+-⇒-⨯⎫⎪⇒-⨯+⇒⎬⇒⎪⎭(1)n x-⨯1nAx-()1 (1)nAn xx--⨯+()1 (1)nAn xxn--⨯+核心算法——牛顿法的设计说明注意,由于本系统主要是使用system generator 设计实现的,没有涉及到具体的代码,所以这里只能对模块进行介绍说明,这里对牛顿法进行介绍。
牛顿法的主要公式为:()1(1)n A n x x n--⨯+其对应的模块为:其中,公式主体对应的是:。
第1节System Generator的简介与安装System Generator7.1.1 System Generator简介目前的FPGA芯片不再扮演胶合逻辑的角色,而成为数字信号处理系统的核心器件。
在芯片内,不仅包含了逻辑资源,还有多路复用器、存储器、硬核乘加单元以及内嵌的处理器等设备,并且还具备高度并行计算的能力,使得FPGA已成为高性能数字信号处理的理想器件,特别适合于完成数字滤波、快速傅立叶变换等。
但遗憾的是,FPGA并未在数字信号处理领域获得广泛应用,主要原因就是:首先,大部分DSP设计者通常对C语言或MATBLAB工具很熟悉,却不了解硬件描述语言VHDL和Verilog HDL;其次,部分DSP工程师认为对HDL语言在语句可综合方面的要求限制了其编写算法的思路。
基于此,Xilinx公司推出了简化FPGA数字处理系统的集成开发工具System Generator for DSP,快速、简易地将DSP系统的抽象算法转化成可综合的、可靠的硬件系统,为DSP设计者扫清了编程的障碍。
System Generator for DSP 是业内领先的高级系统级FPGA开发工具,借助FPGA 来设计高性能DSP 系统,其强大的提取功能可利用最先进的FPGA芯片来开发高度并行的系统,并和Simulink(MathWorks公司产品)实现无缝链接,快速建模并自动生成代码。
此外,System Generator是Xilinx公司XtremeDSP解决方案的关键组成,集成了先进的FPGA设计工具以及IP 核,支持Xilinx公司全系列的FPGA芯片,提供从初始算法验证到硬件设计的通道。
System Generator最大的特点就是可利用Simulink建模和仿真环境来实现FPGA设计,而无需了解和使用RTL级硬件语言,让DSP设计者能够发挥基于FPGA的DSP的最大性能和灵活性,并缩短整个设计的周期。
典型的System Generator工程设计实例如图8-1所示。
风辰的CUDA培训教程(含多款)风辰的CUDA培训教程一、引言二、CUDA编程基础1.GPU架构在介绍CUDA编程之前,需要了解GPU的架构。
GPU由成百上千个核心组成,每个核心都可以执行相同的指令,因此GPU具有极高的并行计算能力。
CUDA编程模型允许开发者将计算任务分配给GPU 上的多个核心,从而实现高效的并行计算。
2.CUDA编程模型(1)主机(Host):指CPU及其内存,用于执行串行代码和CUDA代码的调度。
(2)设备(Device):指GPU及其内存,用于执行并行计算任务。
(3)内核(Kernel):指在设备上执行的并行函数,用于执行具体的计算任务。
(4)线程层次结构:CUDA中的线程被组织成三维的线程块(threadblock)和一维的网格(grid)。
线程块内的线程可以协作,而不同线程块之间的线程相互独立。
3.CUDA程序结构(1)主机端:分配主机和设备内存,将数据从主机传输到设备。
(2)设备端:编写内核函数,定义并行计算任务。
(3)主机端:调用内核函数,启动GPU上的并行计算。
(4)主机端:从设备内存中读取计算结果,释放主机和设备内存。
三、CUDA编程实践1.环境搭建在进行CUDA编程之前,需要搭建相应的开发环境。
具体步骤如下:(1)安装NVIDIAGPU驱动程序。
(2)安装CUDAToolkit,包含CUDA开发工具和运行时库。
(3)配置CUDA开发环境,如VisualStudio、Eclipse等。
2.编写第一个CUDA程序在本节中,我们将编写一个简单的CUDA程序,实现向量加法。
具体步骤如下:(1)在主机端分配内存,初始化输入向量。
(2)将输入向量传输到设备内存。
(3)编写向量加法的内核函数。
(4)在主机端调用内核函数,启动GPU上的并行计算。
(5)从设备内存中读取计算结果,并验证正确性。
(6)释放主机和设备内存。
3.性能优化(1)合理设置线程块大小和网格大小,以充分利用GPU资源。
GTPowerV73培训教程学习课程•课程介绍与背景•软件安装与基本操作•发动机建模与仿真分析目录•燃油系统建模与优化设计•进排气系统建模与性能评估•冷却系统建模与热管理策略•总结与展望01课程介绍与背景GTPowerV73概述GTPowerV73是一款专业的动力系统仿真软件,广泛应用于汽车、航空航天、能源等领域。
该软件具备强大的建模和仿真能力,支持多领域协同仿真,提供全面的解决方案。
GTPowerV73拥有丰富的组件库和模型库,支持用户自定义组件和模型,满足个性化需求。
培训目标与要求培训目标培训要求课程安排与时间课程安排培训时间本课程共计5天,每天8小时,共计40小时。
具体时间安排根据学员需求和实际情况进行调整。
02软件安装与基本操作软件下载与安装步骤01020304工具栏提供常用命令的快捷方式,如新建、打开、保存、打印等。
主界面包括菜单栏、工具栏、项目浏览器、属性窗口等部分。
菜单栏提供文件、编辑、视图、工具、窗口、帮助等菜单项,用于执行各种操作。
项目浏览器用于显示和管理当前打开的项目文件及其内容。
属性窗口用于显示和修改选定对象的属性,如尺寸、颜色、字体等。
界面布局及功能介绍基本操作演示新建项目关闭项目打开项目导入/导出数据保存项目撤销/重做操作03发动机建模与仿真分析选择合适的模型模板定义模型参数建立发动机结构设置边界条件发动机模型建立方法仿真参数设置及运行过程01020304选择仿真类型设置仿真参数运行仿真监控仿真过程结果查看与后处理技巧通过仿真软件的后处理功能,查看发动机的功率、扭矩、油耗等性能指标。
对仿真结果进行统计分析,提取有用信息,如发动机的燃烧效率、排放性能等。
根据仿真结果,对发动机的设计方案进行优化改进,提高发动机的性能和效率。
通过再次进行仿真分析,验证优化方案的效果和可行性。
查看仿真结果分析结果数据优化设计方案验证优化效果04燃油系统建模与优化设计燃油系统模型建立方法基于物理模型的建模利用流体力学、热力学等物理原理,建立燃油系统的物理模型,包括燃油泵、喷油器、燃油轨等关键部件的数学描述。
system generator入门笔记System Generator是Xilinx公司进行数字信号处理开发的一种设计工具,它通过将Xilinx开发的一些模块嵌入到Simulink的库中,可以在Simulink中进行定点仿真,可是设置定点信号的类型,这样就可以比较定点仿真与浮点仿真的区别。
并且可以生成HDL文件,或者网表,可以再ISE中进行调用。
或者直接生成比特流下载文件。
能够加快DSP系统的开发进度。
用System Generator进行仿真1、必须包含的模块:Gateway In、Gateway Out、System Generator、以及Xilinx定点运算单元。
2、对于系统设计中有精确时钟限制的外部接口模块,使用System Generator设计不是最佳方法,此时可以利用HDL等方法实现,然后通过System Generator工具提供的Black Box 导入Sysgen工程中即可。
System Generator Blockset1、主要包括:Xilinx Blockset、Xilinx Preference Blockset 和Xilinx XtremDSP Kit三个库函数块。
2、Xilinx Blockset包含了所有在Simulink中构建数字信号处理系统和其他FPGA数字系统的模块。
3、Xilinx Preference Blockset 是更高层次的模块,都是由Xilinx Blockset中的模块组成的,降低了开发难度,并且具有较高的可靠性。
信号数据类型1、Xilinx Block的输出格式可以设定为:Full precision和User-defined precisionFull precision:会在运算中自动进行位宽扩展User-defined precision:对输出结果进行截位(wrap)或饱和(saturate)处理(用户设置)。
2、在System Generator中,点击Format Port/Signal Displays Port Data Type 即可显示每个模块输入输出的数据类型。
System Generator for DSP培训教程硬件设计探索课程概要将Sysgen的设计纳入更大的系统对整个设计的仿真可配置子系统使用FPGA设计工具处理Sysgen的设计输入Sysgen的设计到更大的系统本节讨论如何将sysgen的设计放入更大的一个系统中。
f最简单的方法是将这个设计封装为模块,综合工具会把它当作一个黑盒子NGC Netlist Compilation选择为NGC网表后,sysgen会把设计编译为NGC二进制文件,如果sysgen配置为包含时钟时,设计被编译为<design>_cw.ngc,否则为<design>.ngc,NGC网表包含了设计的逻辑和约束信息,也就是说所有的HDL,Cores,约束文件被封装为一个文件Design Rules当需要将Sysgen的设计包含到更大的系统的时候必须遵守两个原则:f Gateway或者Sysgen模块不能对IOB/CLK位置进行约束,否则NGDbuild工具会报错WARNING:NgdBuild:483 -Attribute "LOC" on "clk" is on the wrong type ofobject. Please see the Constraints Guide for more information on thisattribute.f在NGC网表综合过程中不能插入I/O buffer,I/O buffer只能在顶层的HDL代码中使用SynthesisSystemgen的设计可以直接在顶层VHDL里实现为一个组件component foo_cw isport (. . .);end component;attribute box_type of foo_cw: component is"black_box";attribute syn_black_box of foo_cw: component istrue;Sysemgen会创建一个组件模板以实现上面的过程当使用语言为VHDL时,模板为*.Vho,当使用Verilog时模板为*.Veo,综合工具为XST时使用box_type属性,为Synplify时使用syn_black_box属性Simulation当选择编译为NGC时, Sysgen创建的VHDL文件只有在HDL仿真中才是必须的,不许要纳入到综合的工程中.这样可以增加工程导航器和顶层综合的性能.如果用户希望对整个设计在HDL仿真器上运行,需要在工程导航器中自己订制一个Modelsim.do文件.此外,内存初始化文件(*.mif)和系数文件(*.coe)必须放在VHDL的同一目录下.Step-by-Step Example在该例子中我们将2个systemgen的设计插入更大的VHDL设计中,这两个子设计为SPRAM和MAC_FIR.顶层实体中包含了两个数据端口和一个来自SPRAM的控制信号,同时也使用了MAC_FIR,并且为MAC_FIR提供了一个全局信号完成子设计并生成NGC文件Synthesizing the Top Level Design整个过程分两步f将生成的所有设计NGC文件COPY到工程文件夹的Top_level下面,这样NGDBUILD可以把top_level.vhd文件填充到黑盒子里面f对顶层设计进行综合------------------------------------------------------------------------------------------------------Constraint | Requested | Actual | Logic | Absolute |Number of| | | Levels | Slack |errors------------------------------------------------------------------------------------------------------TS_clk_c4b7e244 = PERIOD TIMEGRP "clk_c4b | 100.000ns | 6.846ns | 1 | 93.154ns | 07e244" 100 ns HIGH 50% | | | | |------------------------------------------------------------------------------------------------------TS_clk_f488215c = PERIOD TIMEGRP "clk_f48 | 100.000ns | 5.090ns | 1 | 94.910ns | 08215c" 100 ns HIGH 50% | | | | |------------------------------------------------------------------------------------------------------TS_ce_2_f488215c_group_to_ce_2_f488215c_g | 200.000ns | 4.558ns | 0 | 195.442ns | 0roup= MAXDELAY FROM TIMEGRP "ce_ | | | | |2_f488215c_group" TO TIMEGRP "ce_2_f48821 | | | | |5c_group" 200 ns | | | | |------------------------------------------------------------------------------------------------------TS_ce_16_c4b7e244_group_to_ce_16_c4b7e244 | 1600.000ns | 2.719ns | 1 | 1597.281ns | 0_group = MAXDELAY FROM TIMEGRP "c | | | | |e_16_c4b7e244_group" TO TIMEGRP "ce_16_c4 | | | | |b7e244_group" 1600 ns | | | | |------------------------------------------------------------------------------------------------------Simulating the Entire Design对整个设计作行为级的仿真需要下面几个步骤f Systemgen生成的VHDL文件会激活综合工具产生NGC的网表.可以在top_level_testbench.do里面看到是如何引用这些VHDL的f*.mif和*.coe文件在仿真过程中是必须的,需要把他们放到top_level这个文件夹里面f在工程导航器里,选择Behavioral Simulation,然后选择top_level.vhd.f在Processes窗口里面,选择SimulateBehavioral Model并且指定*.do文件vlib work## Files for Design #1vcom-93 -nowarn 1 ../ngc_netlist1/spram.vhdvcom-93 -nowarn 1 ../ngc_netlist1/spram_cw.vhd## Files for Design #2*.do文件的结构vcom-93 -nowarn 1 ../ngc_netlist2/mac_fir.vhdvcom-93 -nowarn 1 ../ngc_netlist2/mac_fir_cw.vhd## Top level filesvcom-93 -explicit top_level.vhdvcom-93 -explicit top_level_testbench.vhdvsim-t 1ps -lib work top_level_testbenchdo wave.dorun 10000ns其中几行说明使用了Modelsim指令来编译systemgen 生成的VHDL文件.运行仿真.结果如下Configurable Subsystems可配置子系统的意义定义一个可配置的子系统f新建一个库f在库里面添加实现子系统的下属模块f在库里面添加template模块f双击该模块,勾选可以用该子系统实现的模块使用可配置的子系统f打开新建的库f将template放入自己的设计中f右点该template,可以选择想实现的子系统删除可配置子系统的模块f打开新建的库f双击模板,关掉要删除的子系统f删除不需要的模块或者子系统f在相关设计用Cril+D更新模型f填加模块,反之亦然为可配置子系统生成硬件f打开新建的库f选择一个子系统,并打开f放入一个Configurable subsystem manager模块f选择生成硬件时对应的子系统使用FPGA设计工具处理Sysgen的设计配置好FPGA设计工具在ISE里面配置好ModelsimSysgen生成的do文件,用于Modelsim仿真f pn_behavioral.do–用于综合和执行之前的行为级仿真f pn_posttranslate.do–用于执行的第一步之后,对Xilinx翻译结果进行仿真f pn_postmap.do–用于映射完成的仿真.f pn_postpar.do–用于综合和布线完成之后的仿真如果选择了<design>_tb.vhd/.v,可以在process中可以找到Modelsim仿真Process Properties对话框显示了这个过程关联的do文件Generating an FPGA BitstreamSysgen生成的各种文件中,<design>_cw.ise是专门用于ISE的工程导航器的,这节主要讨论如何使用它f打开sysgen工程f定制自己的sysgen工程f执行设计设计的bitstream文件Resetting Auto Generated Clock Enable Logic Sysgen为了保证cycle正确的仿真,采用了单时钟多时钟使能的机制,但是sysgen的设计常常作为一个大设计的一部分,所以常常需要指定数据流的起点。