TLM发电机出口目标TLM组件从一个仿真软件金宝app®模型子系统。目标TLM组件只有一个TLM插座,支持读写事务使用TLM通用协议和通用的有效载荷。金宝app
下面的图表说明了最简单的行为可以指定生成的TLM组件。它不包含内存映射或命令和状态寄存器,并立即执行交易。
控制生成的TLM组件的体系结构,您可以选择在几个选项。包含一个内存映射是一种最有效的选择。下图演示了一个生成的行为TLM组件启用了完整的功能。
你可以设置以下选项TLM组件特点:
无内存映射选项生成TLM组件只有一个读和写注册没有任何地址。写寄存器金宝app所代表的Simulink仿真模型的输入和输出是由读寄存器。
没有内存映射,生成的TLM组件具有以下特点:
只有一个输入寄存器和一个输出寄存器。
不需要,却忽略了另一个地址的读写请求期间SystemC模拟选择特定的寄存器在设备上。
接收所有输入数据在一个单一的写请求,和读请求接收所有输出数据的返回值
有输入和输出寄存器所需大小的将整个数据集或由TLM组件时执行行为(算法阶跃函数)在虚拟平台环境
当输入寄存器,这个条件触发(时间表)的执行行为SystemC模拟器。输出寄存器相同的方式处理。
所有默认命令和应用现状。
采用这一选项生成TLM组件时,您可以使用它在一个虚拟平台(副总裁):
一个独立的组件在一个验证试验台
直接绑定co-processing单位
设备连接到一个通信信道使用协议适配器
与单地址自动生成内存映射选项生成TLM组件只有一个读数据寄存器和一个注册一个地址写入数据。
写寄存器金宝app所代表的Simulink仿真模型的输入,输出是由读寄存器。高密度脂蛋白校验™软件自动分配地址需要访问这些特定寄存器在代码生成。这些地址给每个注册地址所需的特定偏移量通过读和写操作。定义整个基地址的生成TLM组件应该定义的虚拟平台,TLM组件驻留在。偏移地址定义出现在一个定义文件,连同TLM生成组件。
用一个地址内存映射,生成的TLM组件具有以下特点:
只有一个输入寄存器和一个输出寄存器,以及可选的命令和状态寄存器和测试并设置寄存器。
必须有一个地址在读写请求SystemC模拟选择特定的寄存器在设备上。
接收所有输入数据在一个单一的写请求,和读请求接收所有输出数据的返回值
有输入和输出寄存器所需大小的将整个数据集或由TLM组件时执行行为(算法阶跃函数)在虚拟平台环境
如果一个命令和状态寄存器不使用或者使用命令和状态寄存器和默认值,当输入注册已满,内容被推到缓冲区,然后触发(时间表)的执行行为SystemC模拟器。如果使用命令和状态寄存器和推输入命令设置为1时,启动程序模块将输入数据从输入寄存器设置为输入缓冲区。输出寄存器相同的方式处理。
如果不使用命令和状态寄存器,所有默认命令和应用现状。
采用这一选项生成TLM组件时,您可以使用它在一个虚拟的平台(VP)作为一个独立的组件测试台上,或者你可以附加到一个通信通道。
自动生成的内存映射与单个地址选项生成TLM组件与一个阅读每模型输出数据寄存器和数据寄存器写每个模型输入与单个地址。
每个仿真软金宝app件模型输入是由其相应的写寄存器,每个输出是由其相应的读取寄存器。高密度脂蛋白校验软件自动分配地址需要访问这些特定寄存器在代码生成。这些地址给每个注册地址所需的特定偏移量通过读和写操作。定义整个基地址的生成TLM组件应该定义的虚拟平台,TLM组件驻留在。偏移地址定义出现在一个定义文件,连同TLM生成组件。
个人地址内存映射,生成的TLM组件具有以下特点:
每个输入寄存器和每个输出寄存器都有自己的地址以及一个可选的命令和状态寄存器和测试并设置寄存器。
必须有一个地址在读写请求SystemC模拟选择特定的寄存器在设备上。
每个输入和输出寄存器必须单独访问。
启动程序模块可以写或阅读每个输入和输出寄存器在多个和/或部分交易。
每个输入和输出寄存器的大小的大小的数据。
执行时所有输入已书面或触发命令和设置寄存器位设置为自动。如果设置为手动,发起者模块将输入数据从输入寄存器设置为输入缓冲区。
输出寄存器时刷新所有输出寄存器读取或当命令和设置寄存器位设置为自动。如果设置为手动,发起者模块输出数据集从输出寄存器的输出缓冲区。
采用这一选项生成TLM组件时,您可以使用它在一个虚拟的平台(VP)作为一个独立的组件测试台上,或者你可以附加到一个通信通道。
你可以选择生成TLM组件与一个自动生成的内存映射地址。当你这样做时,TLM发生器提供您选择将一个命令和状态寄存器(CSR)在生成TLM组件。这个寄存器的定义出现在桌子上。
只写(我们)比特断言互斥的命令。只能维护一个命令在任何单一的写操作到CSR。如果一个以上的命令写入CSR中设置,命令是未定义的。你激活每个命令通过编写一个1到一个命令寄存器中。然后,每个命令被执行的命令后自动清除。你不需要写一个0到寄存器清除命令。只写位总是返回任何读0的CSR。写一个命令不会覆盖读/写或只写位。
使用读写(R / W)获取当前状态和设置。R / W钻头黏糊糊的之后,也就是说,让他们通过编写一个1在注册,还设置了一个R / W位直到0写入相同的调用或重置命令。读写部分返回实际值的任何阅读CSR。
一个写操作,CSR集所有的读写寄存器中的位。你只可以选择设置的一些碎片和维护别人的之前的值。在你这样做之前,你必须首先阅读CSR,然后根据你的要求修改这个值。完成修改后,您可以编写整个32位回CSR。
只读(RO)提供状态信息。自动生成的TLM组件集和清除它们的值,和一个启动程序模块可以阅读他们学习状态。只读位不改变他们的实际值在任何CSR的读或写。
下表包含整个寄存器的定义。
下表说明了如何定义。
位 | 的名字 | 读/写状态 | 描述 |
---|---|---|---|
CSR < 0 > | 复位命令 | 只写 | 当设置为1,以下是正确的:
命令执行后自动返回0。 |
CSR < 1 > | 启动命令 | 只写 | 手动触发执行TLM组件的行为目前使用的输入数据集的输入寄存器中当没有输入缓冲。 当使用输入缓冲时,这个命令是未定义的。 |
CSR < 2 > | 中断状态 | 只读 | 反映了当前状态的中断信号。只提供了状态。集和自动清除。 |
CSR < 3 > | 中断禁用 | 的读写 | 当设置为0时,允许将中断生成的中断信号,反映在中断状态的CSR。 当设置为1时,禁用中断。 |
< 8 >企业社会责任 | 把输入命令 | 只写 | 当使用缓冲和输入模式= 0(手动模式),这个命令允许一个启动程序模块将输入数据从输入寄存器设置为输入缓冲区。然后触发执行TLM组件的行为。 不使用缓冲时,这个命令是未定义的。 输入模式1(自动)时,这个命令是未定义的。 |
CSR < 9 > | 输入模式 | 的读写 | 当设置为1(自动)、输入数据集的运动从输入寄存器的输入缓冲区和执行TLM自动触发组件行为,如果一个完整的数据集已经写入输入寄存器。 当设置为0(手动),输入数据集的运动从输入寄存器的输入缓冲区和执行行为必须手动启动。通过写作开始命令为1,如果使用没有缓冲,或写推输入命令1,如果缓冲。 默认情况下,输入模式设置为1(自动)。将其更改为0(手动),指定TLM组件的构造函数参数。 |
CSR < 12 > | 把输出命令 | 只写 | 当使用缓冲和输出模式设置为0(手动模式),这个命令允许一个启动程序模块将输出数据集从输出寄存器的输出缓冲区。 当不使用缓冲,这个命令没有影响。 输出模式1(自动)时,这个命令是未定义的。 |
CSR < 13 > | 输出模式 | 的读写 | 当设置为1(自动)、运动数据的输出寄存器的输出缓冲区自动触发TLM组件的执行行为。 当设置为0(手动),运动的输出缓冲区的数据输出寄存器必须手动启动。通过写作把输出命令,如果缓冲。 默认的输出模式设置为1(自动)。将其更改为0(手动),指定TLM组件的构造函数参数。 |
您可以添加一个中断信号添加到生成的TLM组件。TLM组件断言这个信号每当新的输出可用在任何输出寄存器。信号时自动清除值是读取任何输出寄存器。
中断信号SystemC布尔信号活性高。中断活跃在状态寄存器的状态反映了中断信号。
您可以使用可选的测试并设置寄存器来控制访问共享TLM组件SystemC环境中。任何读这个寄存器返回当前值并设置注册一个新的断言值在一个原子操作。在系统与多个启动程序模块,执行这个任务通常需要访问相同的目标。如果是这样,那么一个启动程序模块生成TLM独占地访问组件,只要遵循其他发起人模块。发起者模块必须阅读测试和设置注册和使用目标设备只有当读操作返回的值为0。发起者模块可以验证任何后续的测试和寄存器中读取返回一个值为1,这表明其他启动程序模块,设备是忙碌的。获得独占访问TLM组件后,发起者模块目标操作完成时释放组件通过编写一个0到测试和设置寄存器。
TLM组件读写直接从接口输入和输出寄存器在算法处理。启动程序后写道所有输入寄存器(如果在自动模式)或当发起者CSR的START命令写道,该算法处理开始。SystemC等待函数生成所有计时。
谨慎
防止腐败的算法处理结果,不允许发起者执行读或写的寄存器在处理。
这个图表显示了TLM适配器注册接口。
TLM组件读取和写入输入和输出通过一个sc_signal
端口(sc_in
或sc_out
)。这些输入/输出不注册。阶跃函数执行时,它读取的当前值sc_in
港口、执行和结果中写道sc_out
港口。
这个图表显示了TLM与注册接口适配器,和一个sc_in
端口(红色)。