|
本帖最后由 fpgaw 于 2010-6-28 01:15 编辑
复数乘法器,结果代码在modsim下编译通过,在Quartuas下出现编译错误:
Error: Verilog HDL syntax error at mult_complex_float.v(98): experienced unexpected end-of-file -- translate_off synthesis directive must have matching translate_on synthesis directive
Error: Verilog HDL syntax error at mult_complex_float.v(98) near end of file ;expecting ")", or ","
附带:module mult_complex_float(
dataa_r,
dataa_i,
datab_r,
datab_i,
clock,
result_r,
result_i);
input [31:0] dataa_r;
input [31:0] dataa_i;
input [31:0] datab_r;
input [31:0] datab_i;
input clock;
output [31:0] result_r;
output [31:0] result_i;
reg [31:0] result_r;
reg [31:0] result_i;
reg [31:0] temp1;
reg [31:0] temp2;
reg [31:0] temp3;
reg [31:0] temp4;
//(a_r+i*a_i)(b_r+i*b_i)=(a_r*b_r-a_i*b_i)+i(a_r*b_i+a_i*b_r)
// temp1 temp2 temp3 temp4
mult_floating mult_floating_inst1(.dataa(dataa_r),
.datab(datab_r),
.clock(clock),
.result(temp1),
//synopsys translate_off
.overflow(),
.underflow(),
.nan());
mult_floating mult_floating_inst2(.dataa(dataa_i),
.datab(datab_i),
.clock(clock),
.result(temp2),
//synopsys translate_off
.overflow(),
.underflow(),
.nan());
mult_floating mult_floating_inst3(.dataa(dataa_r),
.datab(datab_i),
.clock(clock),
.result(temp3),
//synopsys translate_off
.overflow(),
.underflow(),
.nan());
mult_floating mult_floating_inst4(.dataa(dataa_i),
.datab(datab_r),
.clock(clock),
.result(temp4),
//synopsys translate_off
.overflow(),
.underflow(),
.nan());
add_float add_float_inst1(.add_sub(0),
.dataa(temp1),
.datab(temp2),
.clock(clock),
//没用的端口
.overflow(),
.nan(),
.underflow(),
.result(result_r));
add_float add_float_inst2(.add_sub(1),
.dataa(temp3),
.datab(temp4),
.clock(clock),
//没用的端口
.overflow(),
.nan(),
.underflow(),
.result(result_i));
endmodule //此处为98行
其中的浮点乘法,浮点加减模块是Quartas的mega生成的!在modsim下仿真提示其中的一些实体找不到,能编译通过,不能仿真。
Quartas下的编译问题怎么办?有没有实现过浮点复数乘法器的实例?? |
|