modelsim时许仿真中对边沿状态的读取

三天前写了一个1101序列检测电路,但是仿真结果一直不对。当我从源文件上绞尽脑汁也不知道哪里错了,后来发现是modelsim在时钟上升沿时对状态的读取方式和我们数电老师讲的不一样造成的。

错误:

modelsim时许仿真中对边沿状态的读取

红色的是按照数电刚开始老师讲的,上升沿到时读取状态为上升沿前一时刻的状态,故读取1101,但输出并没有变为1

其实当上升沿到时,如果需要读取的数据正好也是在上升沿或下降沿,则读法不一样。

上升沿读1,下降沿读0

所以正确的数据为0011

修改激励后:

modelsim时许仿真中对边沿状态的读取

可见,在时钟上升沿时,输入信号也是上升沿则为1,下降沿则为0,故读的1101,输出=1


上升沿读1,下降沿读0