ISE中verilog代码的warnings
//一个带清零置位的D触发器。moduleflipflopcs(inputwireclk,inoutwireD,inputwireset,inputwireclr,out...
//一个带清零置位的D触发器。
module flipflopcs(
input wire clk,
inout wire D,
input wire set,
input wire clr,
output q,
output notq );
wire f1,f2,f3,f4,f5,f6;
assign #5 f1 = ~ (f4 & f2 & ~set); //#5表示与门加5个单位时间的传输延时
assign #5 f2 = ~(f1 & f5 & ~clr);
assign #5 f3 = ~(f6 & f4 & ~set);
assign #5 f4 = ~(f3 & clk & ~clr);
assign #5 f5 = ~(f4 & clk & f6 & ~set);
assign #5 f6 = ~(f5 & D & ~clr);
assign q = f1;
assign notq = f2;
endmodule
我想知道为什么assign语句中要加5个单位的时间延时。我试过把#5去掉,ISE在编译的时候会出现如下警告:Xst:2170 - Unit flipflopcs : the following signal(s) form a combinatorial loop: f1_clr_AND_4_o, f4_set_AND_2_o, q. 但是如果把程序烧写到板子上的话,功能依旧可以实现。求大神予以解答…… 展开
module flipflopcs(
input wire clk,
inout wire D,
input wire set,
input wire clr,
output q,
output notq );
wire f1,f2,f3,f4,f5,f6;
assign #5 f1 = ~ (f4 & f2 & ~set); //#5表示与门加5个单位时间的传输延时
assign #5 f2 = ~(f1 & f5 & ~clr);
assign #5 f3 = ~(f6 & f4 & ~set);
assign #5 f4 = ~(f3 & clk & ~clr);
assign #5 f5 = ~(f4 & clk & f6 & ~set);
assign #5 f6 = ~(f5 & D & ~clr);
assign q = f1;
assign notq = f2;
endmodule
我想知道为什么assign语句中要加5个单位的时间延时。我试过把#5去掉,ISE在编译的时候会出现如下警告:Xst:2170 - Unit flipflopcs : the following signal(s) form a combinatorial loop: f1_clr_AND_4_o, f4_set_AND_2_o, q. 但是如果把程序烧写到板子上的话,功能依旧可以实现。求大神予以解答…… 展开
2个回答
展开全部
先要理解那句assign的意思,假设assign #5 a=~a;假设a的初始值是0,这句话就是开始a是0持续5个clk之后a等于not a也就是1,在持续5个clk。。。。。如果去掉前面的数字呢?就是a一直等于~a,这样在同一个时刻a会一直不断的等于1和0么?这显然是不可能的
追问
谢谢您。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
威孚半导体技术
2024-08-19 广告
2024-08-19 广告
威孚(苏州)半导体技术有限公司是一家专注生产、研发、销售晶圆传输设备整机模块(EFEM/SORTER)及核心零部件的高科技半导体公司。公司核心团队均拥有多年半导体行业从业经验,其中技术团队成员博士、硕士学历占比80%以上,依托丰富的软件底层...
点击进入详情页
本回答由威孚半导体技术提供
2013-12-09
展开全部
不加延时,电路会形成组合电路反馈回路,即输出接到输入,这种电路在设计中是不允许的,所以编译的时候会报警告,但是FPGA中自动综合出来的与非门必然是会带延时的(实际的MOS管),编译烧写到板子上,仍然可以成功。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询