微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > a大于-100并且a小于100怎么用verilog描述

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提到的符号数的运算,楼上给的建议刚好,使用补码运算

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

网站地图

Top