弄清SDI显示工程中的每一个信号,每一个逻辑

1. FIFO外部逻辑控制

FIFO的读和写在不同的时钟域,所以读和写的控制逻辑应当分开写在不同的两个always块语句中。

2.播出端复位信号的产生

reg [:]tx_fabric_reset_sss;
always @ (posedge tx_usrclk or negedge tx_change_done)
if (~tx_change_done)
tx_fabric_reset_sss <= 'b111;
else
tx_fabric_reset_sss <= {tx_fabric_reset_sss[:], ~tx_change_done}; assign tx_fabric_reset = tx_fabric_reset_sss[]; /*
add_force {/top/tx_usrclk} -radix hex {0 0ns} {1 50000ps} -repeat_every 100000ps
add_force {/top/tx_change_done} -radix hex {1 0ns} {0 900000ps}
*/

仿真结果:

3.

当tx_change_done产生下降沿时,tx_fabric_reset信号拉高,保持3个时钟周期。

tx_sd_ce信号的产生

reg [:]tx_fabric_reset_sss;
wire tx_fabric_reset;
always @ (posedge tx_usrclk or negedge tx_change_done)
if (~tx_change_done)
tx_fabric_reset_sss <= 'b111;
else
tx_fabric_reset_sss <= {tx_fabric_reset_sss[:], ~tx_change_done}; assign tx_fabric_reset = tx_fabric_reset_sss[]; reg [:]tx_gen_sd_ce;
always @ (posedge tx_usrclk)
if (tx_fabric_reset)
tx_gen_sd_ce <= 'b00000100001;
else
tx_gen_sd_ce <= {tx_gen_sd_ce[:], tx_gen_sd_ce[]}; reg tx_sd_ce;
always @ (posedge tx_usrclk)
tx_sd_ce <= tx_gen_sd_ce[]; assign tx_gen_sd_ce_w = tx_gen_sd_ce;
assign tx_sd_ce_w = tx_sd_ce; /*
add_force {/top/tx_usrclk} -radix hex {0 0ns} {1 50000ps} -repeat_every 100000ps
add_force {/top/tx_change_done} -radix hex {1 0ns} {0 900000ps} {1 950000ps}
*/

弄清SDI显示工程中的每一个信号,每一个逻辑的更多相关文章

  1. excel表格中打开可以显示整个表格但是打印却只能打印一个单元格

    excel表格中打开可以显示整个表格但是打印却只能打印一个单元格 如下图显示 解决办法 2007 版菜单栏上 ----->页面布局----->打印区域----->取消打印.即可正常. ...

  2. nodejs express框架一个工程中同时使用ejs模版和jade模版

    在某些项目中,比如你接手了一个别人的项目然后你不想用蛋疼的ejs,或者你不想用蛋疼的jade.你有不想重写之前的页面,那么你现在可能需要新引入ejs或者jade模块,你仅仅需要做下面两步也许就能完成使 ...

  3. [转载]android工程中引入另一个工程中的资源

    原文地址:android工程中引入另一个工程中的资源作者:87fayuan 在项目中可能遇到这样的问题:项目过大,于是细分为N个子模块来做,每个模块都是不同的工程.涉及到activity传数据时,可以 ...

  4. 在vue中下拉框切换事件中改新建表单中的一个值,页面不显示

    事件中改新建表单中的一个值,页面不显示,当另一个对象值发生改变时,这个页面上的值才会显示 由于新建表单是弹窗,在弹出时会重新给每个字段重新赋值,在赋值时没给这个字段赋值(常见新加功能时,加了一个字段, ...

  5. 关于在工程中添加新文件时的LNK2019错误的一个解决办法

    我这几天一直在研究Qt的串口程序,在读懂了官方给出的实例程序后我决定把其多线程的串口监视程序加入到我自己的工程中,便直接把问价复制到自己的工程下面,在Qt中加入到自己的工程中,但是总是出现LNK201 ...

  6. 流程引擎Activiti系列:在eclipse中搭建咖啡兔的Activiti演示工程中的各种坑及其解决方法(kft-activiti-demo-no-maven)

    近期在学习activiti,打算基于现有的框架,比如activiti-explorer或者咖啡兔的示例工程 kft-activiti-demo,在此基础上添加自己的业务流程,看看是否可以走通,以及这个 ...

  7. Cocos2d-JS工程中的文件结构

    res文件夹存放资源文件 src文件夹是主要的程序代码 app.js是实现游戏场景的JavaScript文件 resource.js在src文件夹中,定义资源对应的变量 config.json保存模拟 ...

  8. VS2010/MFC编程入门之三(VS2010应用程序工程中文件的组成结构)

    VS2010/MFC编程入门之三(VS2010应用程序工程中文件的组成结构)-软件开发-鸡啄米 http://www.jizhuomi.com/software/143.html   鸡啄米在上一讲中 ...

  9. 怎么去掉Xcode工程中的某种类型的警告

    XCode警告   问题描述  在我们的项目中,通常使用了大量的第三方代码,这些代码可能很复杂,我们不敢改动他们,可是作者已经停止更新了,当sdk升级或者是编译器升级后,这些遗留的代码可能会出现许许多 ...

随机推荐

  1. Python 属性

    class Person: def __init__(self, name, gender, birth): self.name = name self.gender = gender self.bi ...

  2. Spring 消息

    RMI.Hessian/Burlap的远程调用机制是同步的.当客户端调用远程方法时,客户端必须等到远程方法完成之后,才能继续执行.即使远程方法不向客户端返回任何消息,客户端也要被阻塞知道服务完成. 消 ...

  3. 【leetcode】290. Word Pattern

    problem 290. Word Pattern 多理解理解题意!!! 不过博主还是不理解,应该比较的是单词的首字母和pattern的顺序是否一致.疑惑!知道的可以分享一下下哈- 之前理解有误,应该 ...

  4. 【leetcode】27-RemoveElement

    problem RemoveElement class Solution { public: int removeElement(vector<int>& nums, int va ...

  5. directive例子2

    (function() { angular.module('app.widgets') .directive('bsModalPlus', function($window, $sce, $modal ...

  6. ios开发常用封装的实用方法

    #pragma mark 获取设备id + (NSString *)getDeviceId { NSString *identifierForVendor = [[UIDevice currentDe ...

  7. 2018.4.24 java实现8皇后算法

    import java.util.Scanner; public class Nqueens { private boolean verify(int[] arr,int i) { // TODO A ...

  8. 2018.4.2 sqlite优化

    一.参数优化. ```PRAGMA foreign_keys=ON;PRAGMA cache_size=8000;PRAGMA synchronous=OFF;PRAGMA temp_store=ME ...

  9. Comet OJ - Contest #2 简要题解

    Comet OJ - Contest #2 简要题解 cometoj A 模拟,复杂度是对数级的. code B 易知\(p\in[l,r]\),且最终的利润关于\(p\)的表达式为\(\frac{( ...

  10. 【java多线程】线程状态分析

    一.java线程的状态 NEW: 新建状态,线程对象已经创建,但尚未启动 RUNNABLE:就绪状态,可运行状态,调用了线程的start方法,已经在java虚拟机中执行,等待获取操作系统资源如CPU, ...