微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 请看看为什么verilog仿真通过,综合通不过。

请看看为什么verilog仿真通过,综合通不过。

时间:10-02 整理:3721RD 点击:

always @(posedge clk)
begin
    if(!reset)
    begin
counter <= 0;
end
    else
counter <= counter + 1;
end
always @(posedge counter[18] or negedge txbusy)
begin
if(!reset)
begin
daout   <= 8'h00;
end
else if(!txbusy)
begin
wr      <= 0;
end
else
begin
    wr          <= 0;
    daout   <= daout + 1;
end
end
错误为:
@E: test.v(33): The logic for daout[7:0] does not match a standard flip-flop @E:"e:\xilinx\bin\mylearning\test1\uart\test.v":33:0:33:6
1 Verilog Compiler error

请看看为什么verilog仿真通过,综合通不过。
negedge txbusy 不能写到 always @(posedge counter[18] or negedge txbusy) 里面
看了你的设计,感觉到你的设计思想不对,需要加强,请多看一些好的设计。

请看看为什么verilog仿真通过,综合通不过。
把你完整的程序贴出来吧

请看看为什么verilog仿真通过,综合通不过。
posedge counter[18]的毛病,可以这样
wire cont_plus;
assign cont_plus=counter[18];
然后用posedge cont_plus代替posedge counter[18]就可以了。
counter[18]等价于counter[18:18],在综合器中它被看作是总线信号,没有沿。

请看看为什么verilog仿真通过,综合通不过。
工具显示的是找不到这种FF,因为你是同步复位(reset),所以要把always里的negedge txbusy去掉就可以了。
另外时钟象羽翔那样处理一下。

学习啊,,,

好好看一下规范,不要用写软件的方式去写硬件,当初师傅这么教我的,

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

网站地图

Top