精华内容
下载资源
问答
  • //-------------同步rptr 指针------------------------- always @(posedge wclk or negedge wrst_n) if (!wrst_n) {wq2_rptr,wq1_rptr} ; else {wq2_rptr,wq1_rptr} ,rptr}; //这里采用了位拼接操作符 //---------...

    modulefifo1(rdata,wfull,rempty,wdata,winc,wclk,wrst_n,rinc,rclk,rrst_n);parameterDSIZE=8;parameterASIZE=4;output[DSIZE-1:0]rdata;outputwfull;outputrempty;input[DSIZE-1:0]...

    module fifo1(rdata, wfull, rempty, wdata, winc, wclk, wrst_n,rinc, rclk, rrst_n);

    parameter DSIZE = 8; parameter ASIZE = 4;

    output [DSIZE-1:0] rdata;

    output wfull;

    output rempty;

    input [DSIZE-1:0] wdata;

    input winc, wclk, wrst_n;

    input rinc, rclk, rrst_n;

    reg wfull,rempty;

    reg [ASIZE:0] wptr, rptr, wq2_rptr, rq2_wptr, wq1_rptr,rq1_wptr;

    reg [ASIZE:0] rbin, wbin;

    reg [DSIZE-1:0] mem[0:(1<

    wire [ASIZE-1:0] waddr, raddr; //读写地址

    wire [ASIZE:0] rgraynext, rbinnext,wgraynext,wbinnext; //读写的格雷码与二进制码

    wire rempty_val,wfull_val;

    //-----------------双口RAM存储器--------------------

    assign rdata=mem[raddr];

    always@(posedge wclk)

    if (winc && !wfull) mem[waddr] <= wdata;

    //-------------同步rptr 指针-------------------------

    always @(posedge wclk or negedge wrst_n)

    if (!wrst_n) {wq2_rptr,wq1_rptr} <= 0;

    else {wq2_rptr,wq1_rptr} <= {wq1_rptr,rptr}; //这里采用了位拼接操作符

    //-------------同步wptr指针--------------------------- ?

    always @(posedge rclk or negedge rrst_n)

    if (!rrst_n) {rq2_wptr,rq1_wptr} <= 0;

    else {rq2_wptr,rq1_wptr} <= {rq1_wptr,wptr}; //

    //-------------rempty产生与raddr产生------------------- ?

    always @(posedge rclk or negedge rrst_n) // GRAYSTYLE2 pointer

    begin

    if (!rrst_n) {rbin, rptr} <= 0;

    else {rbin, rptr} <= {rbinnext, rgraynext};

    end

    // Memory read-address pointer (okay to use binary to address memory)

    assign raddr = rbin[ASIZE-1:0];

    assign rbinnext = rbin + (rinc & ~rempty);

    assign rgraynext = (rbinnext>>1) ^ rbinnext; //产生读格雷码

    // FIFO empty when the next rptr == synchronized wptr or on reset

    assign rempty_val = (rgraynext == rq2_wptr);

    always @(posedge rclk or negedge rrst_n)

    begin

    if (!rrst_n) rempty <= 1'b1;

    else rempty <= rempty_val;

    end

    //---------------wfull产生与waddr产生------------------------------

    always @(posedge wclk or negedge wrst_n) // GRAYSTYLE2 pointer

    if (!wrst_n) {wbin, wptr} <= 0;

    else {wbin, wptr} <= {wbinnext, wgraynext};

    // Memory write-address pointer (okay to use binary to address memory)

    assign waddr = wbin[ASIZE-1:0];

    assign wbinnext = wbin + (winc & ~wfull);

    assign wgraynext = (wbinnext>>1) ^ wbinnext; //产生写格雷码

    assign wfull_val = (wgraynext=={~wq2_rptr[ASIZE:ASIZE-1], wq2_rptr[ASIZE-2:0]}); //:ASIZE-1]

    always @(posedge wclk or negedge wrst_n)

    if (!wrst_n) wfull <= 1'b0;

    else wfull <= wfull_val;

    endmodule

    展开

    展开全文
  • 关注“变频器维修世界”持续更新内容。案例故障原因:由于雷击造成设备总开关跳闸...只能解释由于是同步电机,不能带电机测试,其实自己心里也打堵,到底怎么回事呢?机器拉回来了,上电还是正常,难道驱动模块有问...

    关注“变频器维修世界”持续更新内容。


    案例故障原因:由于雷击造成设备总开关跳闸,合不上闸变频器有损坏。

    解决办法:由于是同步变频器需要带同步电机,涉及参数比较多只是按经验把故障修复可以正常上电。

    a0b1e4c8bb79ebfbcd5ebe5547f0a9db.png

    第一次装上去,由于不在现场有其它师傅安装,装上去一运行还是跳闸,被现场师傅埋怨没有维修好。

    只能解释由于是同步电机,不能带电机测试,其实自己心里也打堵,到底怎么回事呢?

    机器拉回来了,上电还是正常,难道驱动模块有问题?

    仔细检查也没有发现问题,由于变频器没有面板,不知道报了什么故障,询问现场人员说报(变频器失调)。

    2095cf34cfc4310f7fe878330a119161.png

    安川变频器正常故障也没有这个代码,查找不到说明书有点犯难了。

    决定亲自去趟现场处理,还是正常安装上去,可以正常上电,一启动电机总开关直接跳闸。

    试了几次都是这样,决定开始现场排查问题。

    首先,把电机线拆掉一启动还是跳闸,现在不解决能不能运行的问题先,不接电机。

    继续排查,把变频器控制线一条条拆开试,最后还是跳闸。

    766c57a8d77f64f996eb3ffb3421f422.png

    但是我心里慢慢觉得变频器应该没有问题,转移排查方向,开始对空压机控制线路检查,也是一条条线脱开上电,结果拔到一组线时不跳闸了,欣喜若狂。

    e414586c1393112c8396133c6322fcf9.png

    就这样一直沿线路找下去,结果发现一个电磁阀有油拔开一试可以了,马上把线路复原正常通电运行问题迎韧而解。

    342bdb1a3cefc8a1c1620e2dfdd03b8d.png

    PS:有时问题没有找出来的时候,大部分人都觉得是变频器问题有时误导判断。

    必要时还是要去现场才能解决问题。

    展开全文
  • 在高并发网站架构中,MySQL数据库主从同步是不可或缺的,不过经常会发生由于网络原因或者操作错误,MySQL主从经常会出现不同步的情况,那么如何监控MySQL主从同步,也变成网站正常运行...首先,我们解释一下show sla...

    在高并发网站架构中,MySQL数据库主从同步是不可或缺的,不过经常会发生由于网络原因或者操作错误,MySQL主从经常会出现不同步的情况,那么如何监控MySQL主从同步,也变成网站正常运行的重要环节。

    c69bfb9b184b939b9e17de5f9950d166.png

    MySQL同步功能由3个线程(master上1个,slave上2个)来实现,简单的说就是:master发送日志一个,slave接收日志一个,slave运行日志一个。

    首先,我们解释一下 show slave status 中重要的几个参数:

    Slave_IO_Running: I/O线程是否被启动并成功地连接到主服务器上。

    Slave_SQL_Running: SQL线程是否被启动。

    Seconds_Behind_Master:

    本字段是从属服务器“落后”多少的一个指示。当从属SQL线程正在运行时(处理更新),本字段为在主服务器上由此线程执行的最近的一个事件的时间标记开始,已经过的秒数。当此线程被从属服务器I/O线程赶上,并进入闲置状态,等待来自I/O线程的更多的事件时,本字段为零。总之,本字段测量从属服务器SQL线程和从属服务器I/O线程之间的时间差距,单位以秒计。

    如何监控从服务器是否正常运行呢?

    1. 手动执行SHELL脚本

    show slave status\G

    查看上面所说的3个参数是否正常运行。

    2. Percona Toolkit

    Percona Toolkit 提供了一些MySQL数据库相关的工具,可以很好的管理MySQL数据库。

    Percona工具包可以去这里下载:http://www.percona.com/software/percona-toolkit

    pt-heartbeat: 监控MySQL从服务器的延时时间。

    pt-slave-restart: 管理MySQL从服务器重启。

    pt-table-checksum: 检查主从同步数据的一致性,比如遇到复制错误,我们执行了skip error操作之后,检查一下数据还是很有必要的。不过这个工具需要提前设置一下,安装相应的checksum表,请参阅相关资料。

    3. 第三方工具

    MySQL Enterprise Monitor,MySQL企业版监控工具。

    MONyog – MySQL Monior and Advisor,MONyog大家都不陌生,windows下比较好用的MySQLGUI提供者,也有相关MySQL监控工具。

    93c64e05fbf8bd3c3957e373bffc2cdc.png

    4. Nagios 以及Zabbix 的相关插件。

    Nagios相关插件还是很丰富的,大家可以找到相关MySQL Slave的监控工具。

    最后,这里给大家一个开源的MySQL Slave的监控脚本,实用cronjob或者其他相关工具就可以轻易的设置自己的监控工具。

    比如我们实用Jenkins+shell脚本,做失败通知即可迅速的搭建一个简单的MySQL监控工具。

    MySQL Slave 监控脚本:

    #!/bin/bash

    # (C) 2012 - Vincent van Scherpenseel, SYN-ACK.org

    ### VARIABLES ###

    SERVER=`hostname`

    SECONDS_BEHIND_MASTER=`/usr/bin/mysql -e "SHOW SLAVE STATUS\G"| grep "Seconds_Behind_Master" | awk -F": " {' print $2 '}`

    SENTFILE_BROKEN=/tmp/mysql_slaverep_broken.sent

    SENTFILE_BEHIND=/tmp/mysql_slaverep_behind.sent

    ### CHECK FOR REPLICATION BREAK ###

    if [ "$SECONDS_BEHIND_MASTER" == "NULL" ]; then

    # Slave replication is broken

    if [ ! -f $SENTFILE_BROKEN ]; then

    # This has not been reported before

    echo "Slave replication broken on $SERVER"

    touch $SENTFILE_BROKEN

    fi

    else

    # Slave replication is not broken

    if [ -f $SENTFILE_BROKEN ]; then

    # It was broken before which was reported. Clear that state

    echo "Slave replication has been restored on $SERVER"

    rm $SENTFILE_BROKEN

    fi

    ### CHECK FOR REPLICATION DELAY ###

    if [ "$SECONDS_BEHIND_MASTER" -gt "60" ]; then

    # Slave replication is delayed

    if [ ! -f $SENTFILE_BEHIND ]; then

    # This has not been reported before

    echo "Slave replication is $SECONDS_BEHIND_MASTER seconds behind master on $SERVER"

    touch $SENTFILE_BEHIND

    fi

    else

    # Slave replication is not delayed

    if [ -f $SENTFILE_BEHIND ]; then

    # It was delayed before which was reported. Clear that state

    echo "Slave replication delay has been recovered and is now $SECONDS_BEHIND_MASTER seconds behind master on $SERVER"

    rm $SENTFILE_BEHIND

    fi

    fi

    fi

    展开全文
  • 场景: 假设有这样一个场景,在远程服务器部署了一个项目,但是因为代码水平渣渣,需要...我就想:我去,怎么可能个个都像我这么辣鸡,肯定有人解决过这个小问题。一找,哟,原来pycharm已经完美解决支持。 你在本...

    场景:

    假设有这样一个场景,在远程服务器部署了一个项目,但是因为代码水平渣渣,需要不断修改和调试,作为一名还没有尝试过其他部署方法的小辣鸡学生,我的解决办法是在本地编写好,再打开shell使用rz命令或者ftp将打包好的代码一番上传,然后解压,然后再执行调试。反反复复如此。我就想:我去,怎么可能个个都像我这么辣鸡,肯定有人解决过这个小问题。一找,哟,原来pycharm已经完美解决支持。

    • 你在本地可以随时双击打开服务器的某个文件进行编辑,编辑完点击upload即可同步更新到服务器的文件中。这其实就意味着你的本地项目跟远程服务器的项目进行了连通。

    • 你可以在本地进行调试,使用的是远程服务器的python解释器,并且在pycharm本地输出结果,这就意味着你不用再打开she ll连接服务器,敲命令行调试了。

    一、关联远程服务器文件夹

    1、首先,假设你有一台这样的远程服务器,你是最大boss(至少有某个目录权限):

    ip: 110.110.110.120 用户名: root 密码: 1314sb

    然后,你本地有一个项目文件路径为

    E:\workspace\python_project\my_project

    2、打开pycharm,如下

    填写如下信息,可以点击“test sftp connection”测试连通性。

    切换到mappings栏设置映射盘关系。为什么这里又有一个映射呢,当你点击项目上传时,会在你映射的根目录(例如我的映射根目录是/home,当你upload本地的这个项目时,就会在/home目录下创建一个wechat_offical这个文件夹,并将项目文件存在这里)

    3、点击ok后,再打开如下选项,会在左侧出现remote host 面板,会对应显示/home目录下的文件

    4、此时项目右键,上传项目,可以看到,左侧的remote host会显示一个新的文件夹,是如上填写的那个。

    5、我们会发现,这时,右侧remote host面板显示的是服务器上的文件,左面板显示的是本地目录的项目文件。你可以双击点击右侧的项目文件,即可编辑,编辑后点击右上角的upload图标,就会同步到服务器。

    但是 ,注意!!!!!!!这个时候你修改的是服务器上的文件,是不会保存在本地的

    解决办法: 打开本地的test.py文件,编写后,右键upload到服务器,这样本地也保存了,服务器也更新了。

    除此之外,你还可以先从服务器download项目下来修改和保存,更多的玩法由你去探索吧。

    二、使用服务器的解释器进行调试。

    1、既然服务器的项目都拉下来了,还能用服务器的环境进行调试就美滋滋了,答案是肯定的。设置方法就跟往常设置项目环境一样。

    如果之前已经配置过sftp,从如下选项自己选一个,否则跳下一步,再回头选择,要不然本地的编辑环境会报错。

    然后的一切就由pycharm搞定了。

    2、把远程服务器的python运行环境关联到本地项目后,点击运行,会发现,使用的是远程服务器的python解释器,并且可以成功运行。

    总结

    业余练手的项目,使用这种方法更新服务器的文件,效率会提高不止一丢丢哟。

    展开全文
  • 设备同步

    2019-07-10 16:43:02
    下面的应用注意解释怎么同步多台设备,为了达成发送或接收时间同步采样,在mimo或者其它需要多台设备同步操作的应用中。 注意:下面的内容不能用于usrp1. 通用参考信号: usrp使用两个参考信号去同步同步时间...
  • 今天在wm上调试一段界面和后台数据...很是无语,这是又出现了一个问题,当一个线程进入另一个线程 的临界区时,两个线程同时挂起,那就输出看看怎么回事吧,加了几行测试语句,丫的,居然可以正常跑起来没有问题...
  • go 简洁的并发多核处理器越来越普及。有没有一种简单的办法,能够让我们写的软件释放多核的威力?是有的。随着Golang, Erlang, Scala等为并发设计的程序语言的兴起,新的并发模式...前言Java 中有一系列的线程同步...
  • JVM 指令主要包含了一下几种类型:加载和存储指令、运算指令、类型转换指令、对象创建与访问指令、操作数栈管理指令、控制转移指令、方法调用和返回指令、异常处理指令、同步指令等。基于栈的解释器执行过程下面看...
  • VSync Count 垂直同步

    2014-09-15 14:38:13
    Unity3D中新建一个场景空的时候,帧速率(FPS总是很低),大概在60~70之间。一直不太明白是怎么回事,...这个是什么呢,这个就是垂直同步,稍后再做解释。我们可以关闭VSync来提高帧速率,选择edit->project settin
  • 异步复位和同步复位

    2020-09-23 20:58:48
    本章解释一下同步复位和异步复位的区别,以及异步复位同步释放究竟好在哪里,需要怎么做 一、同步复位 同步复位就是只有在时钟上升沿时,复位信号才有效 代码如下: module sync_rst( input clk, input ...
  • Get!Get! Get! 每天学习一点新知识,也算没白活!哈哈哈 开场白:不知道各位iPhone...调休工作日忘记改闹钟,你的iPhone睡的比你还死,迟到的你给老师/领导解释:“老师/领导,我闹钟没响睡过头了。”“别人的闹...
  • 队列怎么叫结束? ​ 调用task_done一次则表示有一个数据被处理完成了 当task_done次数等于put的次数就意味着任务处理完成了 ​ 这也是join的执行时机 该队列可以明确告知数据的使用方,所有数据都已经处理...
  • Unity3D垂直同步VSync

    2020-03-04 14:31:55
    Unity3D中新建一个场景空的时候,帧速率(FPS总是很低),大概在60~70之间。一直不太明白是怎么回事...这个是什么呢,这个就是垂直同步,稍后再做解释。我们可以关闭VSync来提高帧速率,选择Edit->Project Setti...
  • C# ThreadPool 线程同步

    千次阅读 2016-05-26 20:56:21
    接上篇文章,上面的文章利用ThreadPool实现了线程的自动运行,并最后反映在了UI线程上,但是两个ThreadPool中的线程怎么同步,就需要使用ThreadPool中的ManualResetEvent。 MSDN中ManualResetEvent解释为:通知一个...
  • U3D 垂直同步

    2015-05-12 10:02:00
    Unity3D中新建一个场景空的时候,帧速率(FPS总是很低),大概在60~70之间。一直不太明白是怎么回事,现在...这个是什么呢,这个就是垂直同步,稍后再做解释。我们可以关闭VSync来提高帧速率,选择edit->projec...
  • 同步中的死锁问题

    2019-10-27 17:38:48
    有两个或两个以上的线程为了争夺资源而产生等待的现象,具体怎么理解呢,我用一段代码给大家解释下。 public class Test01 { public static void main(String[] args) { Tool t=new Tool(); Thread t1=new ...

空空如也

空空如也

1 2 3 4 5 ... 15
收藏数 300
精华内容 120
关键字:

同步怎么解释