微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 一段verilog代码不理解,求解答

一段verilog代码不理解,求解答

时间:10-02 整理:3721RD 点击:
always @(posedge clk13_5)
begin
vref_d1<=vref;
vref_d2<=vref_d1;
end
and(vref_2,vref_d2,vref_d1);
xor (headd,vref_2,vref_d1);     //在vref的开始拉高一个脉冲  
拉高一个脉冲,是什么意思?



   一个脉冲应该是指一个时钟周期



   搜索“脉冲序列检测”

检测一个上升沿过来

还是没看明白

是产生一个脉冲

检查脉冲上升沿,并产生一个时钟周期宽度的脉冲

确实是检测上升沿,最后两行
and(vref_2,vref_d2,vref_d1);
xor(headd,vref_2,vref_d1);
实际上就是:
assign vref_2 = vref_d1&vref_d2;
assign headd = vref_2 ^ vref_d1;
可以进行逻辑化简:
assign headd=(vref_d1&vref_d2)^vref_d1;
等价于
assign headd =!(vref_d1&vref_d2)&vref_d1 | (vref_d1&vref_d2)&(!vref_d1);
等价于
assign headd= vref_d1 & !vref_d2;

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

网站地图

Top