第三代测试机编程手册  1.0
载入中...
搜索中...
未找到
Vector.h 文件参考

向量系统操作模块. 更多...

结构体

struct  Typedef_VectorExeErrorInfo
 向量运行失败的错误信息保存结构体 更多...
 

枚举

enum  MODIFY_VECTOR_VALUE {
  OUTPUT_L = 0 , OUTPUT_H , INPUT_L , INPUT_H ,
  INPUT_X , INPUT_Z
}
 修改向量时,允许输入的类型. 向量修改函数 Pattern_Modify 更多...
 
enum  VECTOR_EXE_SR {
  VECTOR_EXE_SUCCESS = 0 , VECTOR_EXE_RUN_ERROR , VECTOR_EXE_TIMEOUT , VECOTR_EXE_ADDR_ERROR ,
  VECTOR_EXE_FPGA_ERROR , VECTOR_EXE_LINE_ERROR
}
 向量运行状态标志 更多...
 

函数

LpxBool Vector_GetLoadFlag (void)
 获取向量加载状态的标签
 
VECTOR_EXE_SR Pattern_Execute (uint32_t StartIndex, uint32_t EndIndex, uint32_t OverTime_ms)
 运行指定pattern中指定起始位置的向量
 
Typedef_VectorExeErrorInfoPattern_GetErrInfo (void)
 获取向量运行错误的信息结构体
 
LpxBool Pattern_GetByLabel (char *Label, int32_t OffsetIndex, uint32_t *Index, uint8_t *Vector)
 获取向量中指定标签指定偏移地址的所在行的向量内容
 
uint32_t Pattern_GetLineByLabel (char *Label)
 获取指定向量中指定标签所在行的行号(从0行开始)
 
LpxBool Pattern_Modify (char *Label, int32_t OffsetIndex, uint8_t TCh, MODIFY_VECTOR_VALUE Value)
 修改向量中指定标签指定偏移地址的所在行的向量指定bit位的内容. 使用该函数,多次修改同一行的向量,只有最后一次的修改会生效. 比如向量文件中定义的相对"START"标签的第100行向量为 , TIO0=输出低,TIO1=输出低,TIO2=输出低 第一次修改: Pattern_Modify("START",100,0,OUTPUT_H) 修改TIO0为输出高,其他不变 第二次修改: Pattern_Modify("START",100,1,OUTPUT_H) 修改TIO1为输出高,其他不变 最后的结果为: TIO0=输出低,TIO1=输出高,TIO2=输出低 (第一次修改的TIO0不会改变)
 
void Vector_SetPhase (uint16_t OE, uint16_t simple, uint16_t out)
 设置向量运行的相位 参数的范围:
 
void Vector_SetClock (uint16_t clk_delay, uint16_t clk_duty)
 设置时钟信号量的延时和占空比. 时钟信号量是向量文件中,使用clk命名的信号名称 参数的范围:
 
void Vector_SetRunFre (uint8_t prescaler)
 设置向量系统运行的时钟频率
 
void Vector_EnableDefClkPin (void)
 使能向量文件中信号名为CLK引脚的时钟输出功能. 配置为向量CLK的引脚, 在向量运行时,如果pat中设置为1会输出CLK时钟, 如果设置为0,将会为低电平
 
void Vector_SetClkPin (uint8_t pin)
 指定的 pin 脚为向量输出的CLK引脚.并且使能其时钟功能. 配置为向量CLK的引脚, 在向量运行时,如果pat中设置为1会输出CLK时钟, 如果设置为0,将会为低电平
 
void Vector_DisableClkPin (void)
 禁用向量的CLK引脚输出功能
 

详细描述

向量系统操作模块.

版本
0.1
日期
2023-08-16
作者
fyuan (20879.nosp@m.3439.nosp@m.@qq.c.nosp@m.om)

枚举类型说明

◆ MODIFY_VECTOR_VALUE

修改向量时,允许输入的类型. 向量修改函数 Pattern_Modify

枚举值
OUTPUT_L 

输出模式,低电平

OUTPUT_H 

输出模式,高电平

INPUT_L 

输入模式,输入低电平时,通过该bit判断

INPUT_H 

输入模式,输入高电平时,通过该bit判断

INPUT_X 

输入模式,不关心输入内容,输入任意值都可以通过判断

INPUT_Z 

输入模式,输入电平位于高低电平之间时,通过该bit判断

◆ VECTOR_EXE_SR

向量运行状态标志

枚举值
VECTOR_EXE_SUCCESS 

向量运行成功

VECTOR_EXE_RUN_ERROR 

向量运行错误,该错误一般是因为输入状态判断失败导致

VECTOR_EXE_TIMEOUT 

向量运行超时,可能原因,超时时间设置得太短,但是向量运行时间比较久

VECOTR_EXE_ADDR_ERROR 

向量地址错误,系统内部错误

VECTOR_EXE_FPGA_ERROR 

FPGA错误,系统内部错误

VECTOR_EXE_LINE_ERROR 

某一行错误,系统内部错误

函数说明

◆ Vector_GetLoadFlag()

LpxBool Vector_GetLoadFlag ( void  )

获取向量加载状态的标签

返回
LpxBool
  • lpxTrue 向量加载成功
  • lpxFalse 向量加载存在异常,当前版本未给出异常原因

◆ Pattern_Execute()

VECTOR_EXE_SR Pattern_Execute ( uint32_t  StartIndex,
uint32_t  EndIndex,
uint32_t  OverTime_ms 
)

运行指定pattern中指定起始位置的向量

参数
StartIndex起始行数(uint32_t)
EndIndex结束行数(uint32_t)
OverTime_ms超时时间,开始运行向量后,该函数等待向量运行完成的最大时间.超过该时间,向量未运行完成,会报出 VECTOR_EXE_TIMEOUT 错误
返回
VECTOR_EXE_SR 错误标志 详见 VECTOR_EXE_SR
示例
example_vector.c.

◆ Pattern_GetErrInfo()

Typedef_VectorExeErrorInfo * Pattern_GetErrInfo ( void  )

获取向量运行错误的信息结构体

返回
Typedef_VectorExeErrorInfo* 详见 Typedef_VectorExeErrorInfo
示例
example_vector.c.

◆ Pattern_GetByLabel()

LpxBool Pattern_GetByLabel ( char *  Label,
int32_t  OffsetIndex,
uint32_t *  Index,
uint8_t *  Vector 
)

获取向量中指定标签指定偏移地址的所在行的向量内容

参数
Label指定标签的名称(字符串类型)
OffsetIndex偏移行数(int32_t 如果为0代表标签所在的行)
Index返回的向量行数
Vector读取的向量存放地址
返回
LpxBool
  • lpxTure 获取对应位置的向量内容成功
  • lpxFalse 获取对应位置的向量内容失败

◆ Pattern_GetLineByLabel()

uint32_t Pattern_GetLineByLabel ( char *  Label)

获取指定向量中指定标签所在行的行号(从0行开始)

参数
Label指定标签的名称(字符串类型)
返回
uint32_t 如果找到指定的标签返回所在行数,没有找到返回0xffffffff
示例
example_vector.c.

◆ Pattern_Modify()

LpxBool Pattern_Modify ( char *  Label,
int32_t  OffsetIndex,
uint8_t  TCh,
MODIFY_VECTOR_VALUE  Value 
)

修改向量中指定标签指定偏移地址的所在行的向量指定bit位的内容. 使用该函数,多次修改同一行的向量,只有最后一次的修改会生效. 比如向量文件中定义的相对"START"标签的第100行向量为 , TIO0=输出低,TIO1=输出低,TIO2=输出低 第一次修改: Pattern_Modify("START",100,0,OUTPUT_H) 修改TIO0为输出高,其他不变 第二次修改: Pattern_Modify("START",100,1,OUTPUT_H) 修改TIO1为输出高,其他不变 最后的结果为: TIO0=输出低,TIO1=输出高,TIO2=输出低 (第一次修改的TIO0不会改变)

参数
Label指定标签的名称(字符串类型)
OffsetIndex偏移行数(int32_t 如果为0代表标签所在的行)
TCh修改的T通道,范围0-31对应T0-T31
Value参数选择 MODIFY_VECTOR_VALUE
返回
LpxBool
  • lpxTrue 操作成功
  • lpxFalse 操作失败
示例
example_vector.c.

◆ Vector_SetPhase()

void Vector_SetPhase ( uint16_t  OE,
uint16_t  simple,
uint16_t  out 
)

设置向量运行的相位 参数的范围:

  • 1 ~ 10*prescaler (prescaler 见: Vector_SetRunFre)
  • 时间刻度 = 10ns
  • 比如设置为 10, 时间 = 10*10ns = 100ns
  • 降频倍数越大,oe等可配精度越高
    参数
    OEoe的相位设置
    simple采样的相位
    out输出的相位
示例
example_vector.c.

◆ Vector_SetClock()

void Vector_SetClock ( uint16_t  clk_delay,
uint16_t  clk_duty 
)

设置时钟信号量的延时和占空比. 时钟信号量是向量文件中,使用clk命名的信号名称 参数的范围:

  • 1 ~ 10*prescaler (prescaler 见: Vector_SetRunFre)
  • 时间刻度 = 10ns
  • 比如设置为 10, 时间 = 10*10ns = 100ns
  • 降频倍数越大,oe等可配精度越高
    参数
    clk_delay时钟信号量延迟 1 ~ 10*prescaler
    clk_duty时钟信号量占空比 1 ~ 10*prescaler
示例
example_vector.c.

◆ Vector_SetRunFre()

void Vector_SetRunFre ( uint8_t  prescaler)

设置向量系统运行的时钟频率

参数
prescaler预分频系数
  • 范围 1~255. (0的意义 = 1), 默认为1
  • 基础时钟为10MHz,
  • 使用分频之后的时钟 = 10Mhz / prescaler
  • 分频系数越大,代表同样的向量运行时间会成倍数增加,软件需要设置合理的向量运行超时阈值。
  • oe、exe、samp的相位关系在10MHz能够正常运行,降低频率后,虽然可配置的精度成倍增加, 但一般不需要更改,但若clk_dealy_time、clk_duty要保持与10MHz下一致,必须根据分频系数成倍增加。
注解
注:oe、exe、samp等值设置不能超过精度值,例10Mhz下精度为10(允许设置值1~10),超过精度设置值,向量将不会输出或者进行比较
示例
example_vector.c.

◆ Vector_SetClkPin()

void Vector_SetClkPin ( uint8_t  pin)

指定的 pin 脚为向量输出的CLK引脚.并且使能其时钟功能. 配置为向量CLK的引脚, 在向量运行时,如果pat中设置为1会输出CLK时钟, 如果设置为0,将会为低电平

参数
pin0~31