完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
每当 dis_data有变化就产生一个 高脉冲该怎么写啊
我知道我这个写的是不对的,只是做个示范 always @(dis_data) begin start <= 1'b0; start <= 1'b1; start <= 1'b0; end assign start = (dis data1 != dis_data)?1'b1:1'b0;这个也是不行的,因为脉冲宽度不可控。 我是采集输入信号的变化,最好用组合逻辑实现 如果用时序逻辑实现就会产生一个始终周期的误差。 |
|
相关推荐
5个回答
|
|
对dis_data进行边缘检测(上升或下降沿),检测到的话,拉高start,一个时钟后再拉低就行。这个用组合逻辑实现,我是不会
|
|
|
|
reg [7:0]count=0;
assign start = (count !=1'b0)?1'b1:1'b0; always @(posage clk) begin if(count==8'd10)count<=1'b0; else if(dis_data||(count!=0)) count<=count+1'b1; else count<=count; end |
|
|
|
count的大小就是脉冲宽度。count=1时,就是一个时钟的脉冲宽度。
|
|
|
|
always @(posedge clk)
begin dis_data_dly <= dis_data; end assign pos_dis = (dis_data_dly == 0)&&(dis_data == 1) 这个是采上升沿的 你参考下,clk要和dis_data是同源的 |
|
|
|
采双沿 assign = (dis_data_dly != dis_data )
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
169 浏览 0 评论
1397 浏览 1 评论
469 浏览 0 评论
求FPGA 驱动控制ltc2271 或者 ltc2180 或者 ltc2190或者 ltc2202 的代码
2090 浏览 0 评论
530 浏览 0 评论
4948 浏览 111 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-12 09:33 , Processed in 0.650181 second(s), Total 79, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191