DAC(2)

Fault: Open-Source EDA’s Missing DFT Toolchain

测试模式生成,其目的是找到一组能够检测故障电路的输入序列。测试模式生成是一个复杂的过程,需要优化两个主要方面:1)测试应用的成本(与测试时间成比例)和2)测试的质量(覆盖率)。本质上,自动测试模式生成(ATPG)软件是旨在最大限度地减少生成的测试向量(TV)的数量(从而减少测试花费的时间),同时最大限度地增加覆盖的故障点的数量,以确保在测试中覆盖尽可能多的缺陷。商业可测试性设计(DFT)工具链可用,但开源DFT工具链却出人意料地匮乏。
本文提出了
一一个与HDL设计兼容的实用开源DFT工具链
Fault toolchain提供了生成TV、模拟故障和插入扫描链所需的所有实用程序,还为数字专用集成电路(ASIC)测试的研究活动提供了所需的所有基础设施 。Fault在Verilog中的合成网表上运行,****由五个组件组成:Cut、PGen、Compact、Chain和Tap,支持卡滞故障、延迟故障等模型,使用Swift编程语言实现,但由于windows和Linux对Swift的支持尚不成熟,导致实际应用出现了不便,另外,Fault支持的故障种类有限,如,过渡故障模型尚未考虑在内。

VLSI Placement Parameter Optimization using Deep Reinforcement Learning

本文提出了一个深度强化学习(RL)框架来优化商用EDA工具的布局参数,设计并行收集多个不同环境的工具,克服运行延迟。模型使用与图拓扑特征相关的特征以及由图神经网络生成的图嵌入作为agent的数据输入,迭代训练agent学习调整参数设置以优化布局,缓解了数据的稀疏性,训练过程无需监督样本,结果表明,模型在不同网表下,始终减小了布局线长,可迁移性较好。

内容概要:本文详细介绍了基于FPGA的144输出通道可切换电压源系统的设计与实现,涵盖系统总体架构、FPGA硬件设计、上位机软件设计以及系统集成方案。系统由上位机控制软件(PC端)、FPGA控制核心和高压输出模块(144通道)三部分组成。FPGA硬件设计部分详细描述了Verilog代码实现,包括PWM生成模块、UART通信模块和温度监控模块。硬件设计说明中提及了FPGA选型、PWM生成方式、通信接口、高压输出模块和保护电路的设计要点。上位机软件采用Python编写,实现了设备连接、命令发送、序列控制等功能,并提供了一个图形用户界面(GUI)用于方便的操作和配置。 适合人群:具备一定硬件设计和编程基础的电子工程师、FPGA开发者及科研人员。 使用场景及目标:①适用于需要精确控制多通道电压输出的实验环境或工业应用场景;②帮助用户理解和掌握FPGA在复杂控制系统中的应用,包括PWM控制、UART通信及多通道信号处理;③为研究人员提供一个可扩展的平台,用于测试和验证不同的电压源控制算法和策略。 阅读建议:由于涉及硬件和软件两方面的内容,建议读者先熟悉FPGA基础知识和Verilog语言,同时具备一定的Python编程经验。在阅读过程中,应结合硬件电路图和代码注释,逐步理解系统的各个组成部分及其相互关系。此外,实际动手搭建和调试该系统将有助于加深对整个设计的理解。
### DAC2NRZ 混合信号模型概述 DAC2NRZ混合信号模型涉及数模转换器(DAC)到非归零(NRZ)编码信号的转换过程。此过程中,数字数据通过DAC被转化为模拟信号,随后该模拟信号按照特定规则映射成NRZ格式的数据流[^1]。 在实现这一转化的过程中,通常会涉及到以下几个方面: - **采样率匹配**:为了确保从数字域向模拟域过渡平滑无失真,需精确控制DAC的工作频率使其与预期输出波形相吻合。 - **滤波处理**:由于理想情况下DAC产生的阶梯状电压变化无法直接用于高质量通信链路,在实际应用中往往需要加入低通滤波器来消除高频成分并使输出更加接近理论上的连续时间函数形式。 - **调制方式选择**:对于最终形成的NRZ码型来说,其具体表现形态取决于所采用的基础调制策略(比如二进制相移键控BPSK或是四相绝对相位调制QAM),这些都会影响整个系统的性能指标如误码率BER等参数。 ```python import numpy as np from scipy import signal def dac_to_nrz(data, sample_rate=8e6, oversample_factor=8): """ 将输入的比特序列data转换为过采样的NRZ波形 参数: data (list): 输入的0/1组成的列表表示待发送的信息. sample_rate (float): 输出波形的目标采样速率,默认值为8MHz. oversample_factor(int): 过采样因子,默认设置为8倍. 返回: tuple: 包含时间和幅度两个数组的时间轴t以及对应的nrz_signal. """ # 创建一个适当长度的时间向量 t = np.arange(len(data)*oversample_factor)/sample_rate # 对原始bitstream进行升余弦脉冲整形 shaped_bits = [] for bit in data: pulse_shape = [bit]*oversample_factor # 使用矩形脉冲作为简单例子 shaped_bits.extend(pulse_shape) nrz_signal = np.array(shaped_bits)-0.5 # 移动直流偏置使得范围位于[-0.5,+0.5] return t, nrz_signal # 测试代码片段 if __name__ == "__main__": test_data=[1,0,1,1,0,0,1] time_axis,nrz_waveform=dac_to_nrz(test_data) print("Time Axis:",time_axis[:7]) print("Corresponding NRZ Waveform Values:",nrz_waveform[:7]) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YJII

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值