conquer998 2022-12-06 20:05 采纳率: 100%
浏览 30
已结题

verilog中时钟上升沿准备数据,下降沿使用

在时钟下降沿产生single_bit 变量,然后在时钟上升沿使用single_bit 进行循环移位操作,
reg [7:0] shift;

reg [7:0] shift_cnt;
reg [7:0] temp ;
reg single_bit;
always@( negedge clk_100MHz, negedge rstn )
begin
if( !rstn )
begin
shift_cnt <= 8'd8;
temp <= 8'h55;
single_bit <= 1'b0 ;
end
else if( |shift_cnt )
begin
shift_cnt <= shift_cnt - 1;
single_bit <= temp[shift_cnt - 1];
end
else
single_bit <= 1'b0 ;
end

always@( posedge clk_100MHz, negedge rstn )
begin
if( !rstn )
begin
shift <= 8'd0;
end
else
begin
shift <= {shift[6:0], single_bit} ;
end
end

img

我理解是时序是,由于shift是非阻塞赋值,所以shift值为1应该出现在光标处,而实际上shift为1出现的时刻比我想得提前了一个时钟周期,这是为什么呢?希望大家给分析分析,指一个 正确的思路,在此先谢过了
  • 写回答

1条回答 默认 最新

  • 老皮芽子 2022-12-06 20:40
    关注

    时序与代码是一致的,波形没问题
    不太理解你为什么认为在这个光标处shift 应该为 1
    按你的代码,shift 为1是在时钟上升沿single_bit 为 1 的时候产生。
    如果你认为波形有问题,就应该去分析single_bit

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月6日
  • 已采纳回答 12月29日
  • 创建了问题 12月6日

悬赏问题

  • ¥15 程序实在不会写,要秃了
  • ¥15 pycharm导入不了自己的包
  • ¥15 C#.net通过内网url地址获取文件并下载问题,浏览器postman可以正常下载,用程序不行
  • ¥15 本人本科机械,目前研一。没有深度学习基础,目前对研究生课题一片迷茫,请教各位!
  • ¥15 关于R语言单因素与多因素线性回归的平均值
  • ¥15 服务器清除BIOS之后引导不了
  • ¥15 CPLEX用OPL编写的混合整数线性优化问题。
  • ¥15 可以用EasyConnect连接实验室内网,但无法连接内网才能访问的服务器,为什么?
  • ¥15 前端预览docx文件,文件从后端传送过来。
  • ¥15 层次聚类和蛋白质相似度