[verilog] 一个时序电路的问题

[复制链接]
 楼主| jetlin1992 发表于 2016-6-4 21:29 | 显示全部楼层 |阅读模式
要实现的波形如图,CS RD为输入信号,两个信号肯定不会同时发生变化

麻烦大家给个思路

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
waiter 发表于 2016-6-4 22:21 | 显示全部楼层
你这个只是给个图,太模糊了。。
waiter 发表于 2016-6-4 22:22 | 显示全部楼层
如果cs、rd是固定就是那种输入波形变化,你直接做个计数器计数,在特定计数器值,输出高电平不就行了?
waiter 发表于 2016-6-4 22:35 | 显示全部楼层
要不你就给出你的设计意图,最好给个真值表。
我理解是,CS上升沿时,如果输出原本是低,就保持为低;如果原本输出为高,就把输出切换到低。
              而RD的下降沿处,如果cs为低,那么就把输出切换到高输出;如果这时cs为高,对输出不产生影响。

感觉你这个是某个芯片的两个控制脚,cs是片选,rd是读使能,两个都是低电平有效。
如果是这样,直接判断:
    always @ (posedge clk)   
        output <= (!cs) & (!rd);
也就是说,你那个“输出”,搞得跟cs、rd那种复杂的关系,完全没有必要。
或者说,你根本无法做到输出的上升沿与rd的下降沿在同一个时钟沿。
 楼主| jetlin1992 发表于 2016-6-4 22:45 | 显示全部楼层
waiter 发表于 2016-6-4 22:35
要不你就给出你的设计意图,最好给个真值表。
我理解是,CS上升沿时,如果输出原本是低,就保持为低;如果 ...

这是CPLD与DSP通信的程序;
CS是片选,RD是DSP的读信号,输出信号是打算用来控制三态门的;
有三种可能的情况。
写操作:CS=0的过程中RD一直高,输出不变化;
其他芯片的读操作:RD=0的过程中,CS为高,输出也不变化;
对CPLD进行读操作:当RD下降沿,若CS=0,输出变低;RD上升时,输出不变,当CS上升时,输出变高;
 楼主| jetlin1992 发表于 2016-6-4 22:50 | 显示全部楼层
waiter 发表于 2016-6-4 22:35
要不你就给出你的设计意图,最好给个真值表。
我理解是,CS上升沿时,如果输出原本是低,就保持为低;如果 ...

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
玄德 发表于 2016-6-5 09:44 | 显示全部楼层

不难吧,很有规律的。

两个输入同时为低时,
设标志,同时输出反转为高;
标志和CS上升沿同时成立,则输出反转为低,同时标志复位。


mcu5i51 发表于 2016-6-5 10:12 | 显示全部楼层
好像RS触发就行,一个引脚置位,一个引脚复位
waiter 发表于 2016-6-5 12:38 | 显示全部楼层
这不就很清楚了嘛。七楼正解:
  cs为低,RD为高时,CPLD从总线上采样数据,然后lock住,自己内部去想怎么处理就怎么处理;
  cs为低,RD也为低时,CPLD驱动总线,把数据放到总线上后,在cs或者rd任意一个为高后再释放总线驱动就行了。

always @ (posedge clk , negedge rst_b)
    if (!rst_b)
        cpld_smpl <= 1'b0;
    else
        cpld_smpl <= (!cs & rd) ;

always @ (posedge clk , negedge rst_b)
    if (!rst_b)
        cpld_drive_bus <= 1'b0;
    else
        cpld_drive_bus <= !cs & !rd ;

assign bus_data[WIDTH-1:0] = cpld_drive_bus ? cpld_data_out[WIDTH-1:0] : {(WIDTH){1'bz}} ;

mohanwei 发表于 2016-6-5 14:49 | 显示全部楼层
算法:把RD设为下降沿中断,CS设为上升沿中断;
然后在这两个中断里判断对方的电平就可以了:
1-RD下降沿中断时,如果CS为低,则把输出拉高,否则不变;
2-CS上升沿中断时,如果RD为高,则把输出拉低,否则不变;
habc987 发表于 2016-6-11 11:21 | 显示全部楼层
waiter 发表于 2016-6-5 12:38
这不就很清楚了嘛。七楼正解:
  cs为低,RD为高时,CPLD从总线上采样数据,然后lock住,自己内部去想怎么 ...

这样做可能会有点问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

15

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

7

主题

15

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部