DFT实训教程笔记3(bibili版本)-SOC Scan Implementtation & Scan Practice Session II

博客回顾了DFT相关作业,探讨双端口扫描单元、电平敏感扫描设计等问题。分析了scan.tcl脚本和SPF文件,介绍做scan时的Flow脚本。还提及让工具autofix rst问题、查看preview_dft等内容,以及Scan reorder和scan compression的作用与原理。


本博文是博主记录DFT实训教程的笔记版本,此笔记并没有对所有的知识进行记录,仅仅以自身的认知水平,来记录了一些部分笔记并加上了自己的理解。

回顾作业

思考如下的问题:
在设计里面还有别的cell,当然主流仍然是MUX-D。
A、双端口扫描单元:为了把扫描时钟与正常时钟、扫描数据与正常触发器数据输入数据区分开,扫描触发器采用双(数据)双时钟触发器,有两个数据端口D和SI、两个时钟clk1和clk2,clk1和clk2时钟信号到来后SI端口的信号被捕获。
B、电平敏感扫描设计(Level-sensitive scan design, LSSD):采用双锁存设计,对瞬态特性,如上升沿、下降沿都不铭感,电路结构中包括两个相互链接的电平敏感锁存器、信号有效数据输入D、系统时钟CK、串行扫描输入SI和两个互不重复的时钟clk1和clk2、串行扫描输出SO。测试中L1(主)和L2(从)结构,正常function状态时只有L2起作用,作用如同触发器。

在这里插入图片描述
对于问题2:
如果当你进行capture时候,就可能会改变reg/Q上面的值,相当于PPI发生了变化,与PI共同作用,会导致PO的值改变。所以,此时PO上面的值不是PI+PPI的值,而是PI+caputure后PPI上的值的作用结果。一般而言我们是希望前面一种,如果采用后面一种方式,工具会多了一个新的计算,相当于用新的PPI+PI运算结果。
如下图所示,对于measure PO, 如果发生在capture之后,由于capture这个动作会冲掉reg上面的值,导致产生新的PPI。
在这里插入图片描述

scan.tcl的脚本

#configure library
set search_path "$search_path ./netlist ./lib"
set target_library {
   
   ./lib/typical.db}
set link_library {
   
   * .
### 关于DFT(离散傅里叶变换)的学习资料与笔记 #### 1. **基础概念** 离散傅里叶变换 (Discrete Fourier Transform, DFT) 是一种用于将时域信号转换为频域表示的方法。其核心思想在于,任何有限长度的离散信号可以被分解为一系列正弦波分量的加权和[^2]。这种技术广泛应用于数字信号处理、图像处理以及通信等领域。 #### 2. **推荐学习资源** - **知乎专栏** 文章链接提供了直观且易于理解的内容,适合初学者快速掌握基本概念。例如,《傅里叶分析之掐死教程》通过生动的例子和动画展示了如何从几何角度理解傅里叶变换的工作机制。此外,另一篇知乎文章也深入探讨了实信号的特性及其对应的DFT结果——即共轭对称性[^3]。 - **教科书级参考资料** 对于更严谨的学习需求,《数字图像处理》中的相关内容覆盖了理论推导过程,并辅以实际应用案例说明[^1]。另外,在线文档如《Fourier Tutorial by Steve Lehar》同样值得阅读,因为它不仅讲解了数学背景还涉及到了物理意义层面的理解。 - **学术论文和技术报告** 西安电子科技大学发布的PDF文件详细介绍了DFT算法的具体实现步骤及优化技巧[^4]。这份材料对于想要深入了解内部工作机制的人士非常有帮助。 #### 3. **Python代码实践指南** 以下是基于NumPy库的一个简单版本DFT实现: ```python import numpy as np def dft(x): N = len(x) n = np.arange(N).reshape((N, 1)) k = np.arange(N).reshape((1, N)) Wn = np.exp(-2j * np.pi * k * n / N) Xk = np.dot(Wn, x.reshape((N, 1))) return Xk.flatten() # 测试数据 signal = np.array([0, 1, 2, 3]) result = dft(signal) print("原始信号:", signal) print("DFT 结果:\n", result) ``` 此脚本定义了一个名为`dft()` 的函数来计算输入向量 `x` 的离散傅立叶变换值 。注意这里我们手动构建了旋转因子矩阵Wn并通过矩阵乘法完成整个运算流程。 #### 4. **重要性质概述** | 序列 | 性质名称 | 描述 | |------|------------------------|----------------------------------------------------------------------| | | 线性性质 | 若有两个序列分别经过DFT,则它们任意线性组合后的DFT等于各自单独做DFT后再按相同方式组合的结果 | | | 循环移位性质 | 当一个周期性的序列发生循环平移时,仅影响相角而不改变幅度谱分布情况 | | | 时间反转性质 | 如果把时间轴反向排列得到新序列y[n]=x[-n],那么Y(k)=X*(N-k),其中*代表复数共轭操作 | 以上表格列举了几种常见的DFT属性描述。 ---
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值