verilog 中如何让一个高电平在经过一个时钟周期后回到低电平 用了#延迟没有用啊

我一开始初始化为一个低电平,然后执行一个运算,当运算结束,结果输出的时候,这个电平置高,起到一个done的作用,但是我不想让它一致高下去,让它在一个周期以后变回低电平,请... 我一开始初始化为一个低电平,然后执行一个运算,当运算结束,结果输出的时候,这个电平置高,起到一个done的作用,但是我不想让它一致高下去,让它在一个周期以后变回低电平,请问如何实现。

begin
flout_c={s3,exp3[7:0],man3[22:0]};
done= 1'b1;
//#10 done= 1'b0;
end
end
因为没有用,我把它注释掉了,如果不注释掉的话,done就一直是低电平,根本不会变高,这是为什么呢?
展开
 我来答
乐游神州
推荐于2016-12-02 · TA获得超过108个赞
知道答主
回答量:71
采纳率:0%
帮助的人:33.7万
展开全部
看你的问题你并不是在写测试代码,只是在写设计代码,设计中输出高低电平变化要由输入来控制。延时有关的语句在设计中是不可综合的,在编译综合后,编译器会自动忽略。所以你还要一个输入来控制
当然你这个done 本身就可以定义为一个input 然后对应的 IO 外接控制高低电平的按键来控制done 的高低 简要思路如下:

module XX (done,XX,……);

input done;
output XX;
…… ;
reg XX;
always @ (done)
begin

if (done) //done 由输入IO口控制

XX = 0;
else
XX = ……;

end
........
..........
..........
endmodule
当然如果是些测试代码的话就是上面那位仁兄所写的。希望能帮到你,共同进步,加油!!
意法半导体(中国)投资有限公司
2023-06-12 广告
STM32F103C8T6是一款基于ARM Cortex-M3内核的微控制器,具有以下基本参数:1. 工作频率:72MHz2. 外部时钟:最高可达120MHz3. 存储器容量:64K bytes4. 数据总线宽度:32位5. 输入/输出端口... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
宋桓公
2012-07-26 · TA获得超过912个赞
知道小有建树答主
回答量:186
采纳率:0%
帮助的人:112万
展开全部
initial
begin
RSTn = 0; #10 RSTn = 1;
CLK = 0; forever #5 CLK = ~CLK;
end
这是我们一般写测试文本,最常见的语句,你这样写应该是有反映的,不会没有变化的。
initial

begin
done = 1; #10 done = 0;
end

你再试试吧!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式