微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > Verilog中如何使用D触发器来实现延时

Verilog中如何使用D触发器来实现延时

时间:10-02 整理:3721RD 点击:
片子中需要自己产生一个脉冲,像是用D触发器来实现一定时间的延时,该怎样写代码,还忘指点一二。使用寄存器的移位来实现也可以,不过我都没有太大的把握,多谢各位了!

Verilog中如何使用D触发器来实现延时
reg [5:0] shift;
assign data_out = shift[5];
always@(posedge clk)
shift <= {shift[4:0],data_in};
你应该多看看书

Verilog中如何使用D触发器来实现延时
多谢atuhappy
不过我还是有个问题不太明白
假设有这样一种情况: 当读信号(LRD)或者写信号(LWR)出现时,延时6个时钟周期后产生一个持续时间为2个时钟周期的脉冲,其中读/写信号均为低电平有效。
可否这样来实现:
reg LRDY;
reg [5:0] delay;
reg [1:0] hold;
assign command = LRD & LWR;
always@(posedge CLK)
if(!command)
  begin
   delay <= {delay[4:0], command};
   LRDY <= 0;
   hold <= {hold[0], LRDY};
   LRDY <= 1;
  end

Verilog中如何使用D触发器来实现延时
不对呀

Verilog中如何使用D触发器来实现延时
你仿真一下就知道为什么不对了

Verilog中如何使用D触发器来实现延时
我这里没有仿真工具呀
NC-Verilog,我没有
只有synplify
请问你都用什么来仿真

Verilog中如何使用D触发器来实现延时
对Verilog真的是刚开始接触
有些问题是写代码的时候才逐渐发现
还望不要见笑呦
不过还是要感谢你的耐心与无私的帮助

Verilog中如何使用D触发器来实现延时
在PC上你可以用modelsim来仿真。

Verilog中如何使用D触发器来实现延时
没有仿真工具怎么验证呀
还是去找一个吧
本站的ftp有

Verilog中如何使用D触发器来实现延时
Cadence的LDV到处都有,你多找找,最新的是LDV 5.0、5.1。
仿真、验证还是要LDV,没有这个真的是不行的。
代码只是电路的表示形式,verilog不是软件,写代码实际是在写电路,多理解理解,不要用软件的想法来设计电路。

你的代码实在看不懂啊

Verilog中如何使用D触发器来实现延时
看来问题还是挺多的
现在我再把问题说明一下
就是需要在读命令或者写命令出现的时候延时6个时钟周期产生一个低电平脉冲并保持2个之中周期
总感觉自己还是没有入门的样子
reg [5:0] shift;
assign command = read & write;//本来是想使用一个与门来实现and gate(command, read, write),可是综合的时候抱错,就直接将他们位与了一下
shift <= {shift[4:0], command};//是想将command延时6个时钟周期,这一步能达到目的么?我不太确认
lrdy <= 0;//看来这条语句是太有问题了,该怎样写呢?
我也觉得挺费劲的,大家给点建议吧
谢谢楼上各位的意见,我也希望自己每天都能有一点进步


为什么这是个D触发器?

用个计数器就可以

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top