a大于-100并且a小于100怎么用verilog描述
时间:10-02
整理:3721RD
点击:
自己写的逻辑一直不对,求好人解答
定义的数据有符号位,就可以了
wire signed [15:0];
if(a>-16'd100 && a<16'd100)
wire signed [15:0];
if(a>-16'd100 && a<16'd100)
module dayu(a,clk,reset,out
);
input signed[9:0]a;
input reset;
input clk;
output out;
reg out;
always@(posedge clk)
begin
if(reset)
out<=0;
else
if(a>=-10'd100)
out<=1;
else
out<=0;
end
endmodule
我这段代码编写的逻辑不正确,out一直不变是不是哪里逻辑有问题?麻烦帮忙看下吧,加了signed
是仿真不对还是上板后不对
前面发下tb
后者抓下a看看
建议使用补码操作
wire [9:0] a ;
if ( a<16'd100 && a> (16'd1024 - 16'd100) )
不确定对你是否有帮助
硬件编码跟软件编程,最基本的区别就是是否能够映射到实际的电路上
硬件代码设计,一定要明确代码与硬件电路的一一对应关系
针对lz提到的符号数的运算,楼上给的建议刚好,使用补码运算
