Verilog 如何将pos边缘写入脉冲创建为neg边缘脉冲?
我有一个数据源信号,当它有数据准备写入时,它会在时钟的正边缘高电平转换 我也有ram内存(从同一个时钟运行),但期望它的写请求信号在时钟的负边缘上转换(并保持高电平,直到下一个时钟的负边缘) 如果我尝试直接从数据源驱动内存的wr_-req,那么时钟和wr_-req都会同时转换,内存不会得到响应 数据Verilog 如何将pos边缘写入脉冲创建为neg边缘脉冲?,verilog,Verilog,我有一个数据源信号,当它有数据准备写入时,它会在时钟的正边缘高电平转换 我也有ram内存(从同一个时钟运行),但期望它的写请求信号在时钟的负边缘上转换(并保持高电平,直到下一个时钟的负边缘) 如果我尝试直接从数据源驱动内存的wr_-req,那么时钟和wr_-req都会同时转换,内存不会得到响应 数据 如何延迟写入脉冲,使其从时钟的下一个负边缘开始变高(一个周期?如果我理解正确,这应该满足您的要求: reg blah; always @(negedge clk) begin blah &l
如何延迟写入脉冲,使其从时钟的下一个负边缘开始变高(一个周期?如果我理解正确,这应该满足您的要求:
reg blah;
always @(negedge clk) begin
blah <= !foo;
end
模拟:
如果我理解正确,这应该可以满足您的要求:
reg blah;
always @(negedge clk) begin
blah <= !foo;
end
模拟:
一种可能的方法是打开写入,等待写入者的确认,然后关闭写入。一种可能的方法是打开写入,等待写入者的确认,然后关闭写入。潜在的竞争条件是否适用于Charles发布的两个版本?我试过并成功了,唯一的调整是foo是一个活跃的高信号,所以要在上面的模拟中创建类似于废话的东西,我必须删除废话的反转,然后执行:reg blah;分配最终的_wr_sig=blah&~blah_dly;总是(negedge clk)胡说八道,我不确定这里是否有比赛条件。特别是非阻塞赋值。如果有的话,我想知道更多的细节。潜在的竞争条件是否适用于查尔斯发布的两个版本?我试过并成功了,唯一的调整是foo是一个活跃的高信号,所以要在上面的模拟中创建类似于废话的东西,我必须删除废话的反转,然后执行:reg blah;分配最终的_wr_sig=blah&~blah_dly;总是(negedge clk)胡说八道,我不确定这里是否有比赛条件。特别是非阻塞赋值。如果有,我错过了,我会喜欢更多的细节