有符号数和无符号数比较大小,有符号数会被当做无符号数。
  代码如下。我把波形信号data和dac输出进行比较,比较结果如图。可以看到当data为正时,比较结果是对的;当data为负时,被当做正的进行比较了。

reg [19:0] signed data;
reg [18:0] unsigned dac_out;
wire cmp_out;
assign cmp_out = (data > dac_out)? 1'b1: 1'b0;


  结论:有符号数只能和有符号数比较

reg [19:0] signed data;
reg [19:0] signed dac_out;
wire cmp_out;
assign cmp_out = (data > dac_out)? 1'b1: 1'b0;


附代码文件和数据文件:
代码

`timescale 1ns/1ns
module file_operation_tb;reg clk_50M;
reg signed [19:0] data;     // 18+1, 1 for sign bit
reg unsigned [31:0] count;  // data counter
integer fp;     // file handler
wire cmp_out;   // comparator output
reg unsigned [31:0] wave_cnt; // wave counter
wire signed [19:0] dac_out;   // dac output
reg [15:0] dac_load;          // dac loading value
wire [31:0] buffer;initial beginclk_50M = 1'b0;data = 20'd0;count = 32'd0;wave_cnt = 32'd0;
endalways #10 clk_50M = ~clk_50M;initial begin#100fp = $fopen("../../../testbench/sine.txt", "r");if(!(|fp)) begin$display("cannot open file\n");#100$stop;endelse begin    while(wave_cnt < 32'd50) begin // genearte 50 sine waves$display("reading file...\n");while(!($feof(fp))) begin@(posedge clk_50M) begin$fscanf(fp, "%d", data);count <= count + 32'd1;//$display("%d    %d", data, count);endend$display("done reading: round %d\n", wave_cnt + 1);$fseek(fp, 0, 0);wave_cnt = wave_cnt + 1;end   $fclose(fp);#500$stop;end
endassign cmp_out = (data > dac_out)? 1'b1: 1'b0;initial begindac_load = 16'd1;
endalways@(wave_cnt) beginif(wave_cnt < 30 && !(wave_cnt % 2)) // take dac load by 2 every 2 sine waves in the first 30 wavesdac_load <= dac_load << 1;elsedac_load <= dac_load;
endassign buffer = dac_load; // use buffer to avoid truncature
assign dac_out = (((buffer * 5000) >> 8) * 100) >> 8;endmodule

数据

Quartus中有符号数和无符号数比较大小相关推荐

  1. java中有符号数和无符号数,C语言中无符号数和有符号数之间的运算

    C语言中有符号数和无符号数进行运算(包括逻辑运算和算术运算)默认会将有符号数看成无符号数进行运算,其中算术运算默认返回无符号数,逻辑运算当然是返回0或1了. unsigned int和int进行运算 ...

  2. 对verilog中有符号数和无符号数的理解

    文章目录 对verilog中有符号数和无符号数的理解 对verilog中有符号数和无符号数的理解 ​ verilog中使用signed表示有符号数,比如: wire signed [7:0] din; ...

  3. C语言中有符号数和无符号数的问题

    C语言中有符号数和无符号数的问题 项目说明     考虑下列代码, 这段代码试图计算数组a中所有元素的和, 其中元素的数量由参数length给出: /* WARNING: This is buggy ...

  4. 关于汇编中有符号数和无符号数的判断

    首先给一段代码 1 #include <stdio.h> 2 int main() 3 {unsigned int x=9; 4  int y=-20; 5  int m=(x+y> ...

  5. verilog中有符号数和无符号数的相关运算

    目录 1.有符号数和有符号数的加减运算(输入和输出为原码) 2.无符号数和有符号数的加减运算(输入和输出为原码) 3.有符号数和有符号数的乘法(输入和输出为原码) 1.有符号数和有符号数的加减运算(输 ...

  6. c语言 有符号数与0作比较大小,C语言中有符号数与无符号数能否进行比较运算...

    无符号数和有符号数是不能进行比较运算的,否则可能会出现意想不到的错误,且极难检查出来! 首先肯几个例子(假设在32位的机器上): 1         1. 0 == 0U 2         2. - ...

  7. 有符号数与无符号数比较大小

    今天练习时发现一个很神奇的题,如下: #include <stdio.h> int i; int main() {i--;if (i > sizeof(i)){printf(&quo ...

  8. Verilog 和VHDL有符号数和无符号数相关运算

    目录 一.Verilog有无符号数运算 1.有符号数和有符号数的加减运算(输入和输出为原码) 2.无符号数和有符号数的加减运算(输入和输出为原码) 3.有符号数和有符号数的乘法(输入和输出为原码) 二 ...

  9. FPGA设计中 有符号数、无符号数

    FPGA设计中 有符号数.无符号数 今天给大侠聊一聊FPGA设计中有符号数以及无符号数,话不多说,上货. 在设计中,所有的算数运算符都是按照无符号数进行的.如果要完成有符号数计算,对于加.减操作通过补 ...

最新文章

  1. QIIME 2用户文档. 11数据筛选Filtering data(2018.11)
  2. 浅析聚簇索引与非聚簇索引(也叫二级索引)
  3. _Linux中功能强大的截图工具 - Flameshot
  4. Replication的犄角旮旯(二)--寻找订阅端丢失的记录
  5. Python-print学习
  6. 迄今为止最详细的ubuntu无盘工作站安装指南
  7. 微型计算机原理考试试卷,微机原理与应用试题库(附答案)
  8. 产品学习:淘宝网的架构演化案例分析
  9. BP神经网络算法基本原理,基于bp的神经网络算法
  10. OPNET网络仿真实验
  11. h5调用手机相机和录音机_html5 调用手机摄像头以及录音的方法
  12. 十六进制转float
  13. 阶段性总结 个人总结 (上)
  14. gps测试软件搜索不到星,手机搜不到星 搜星慢终极解决方法!
  15. asterisk1.4与asterisk1.6双机互联问题
  16. jQuery的文档处理
  17. 【总览】程序员前端、后端资源合集
  18. php5.3不能连接mssql数据库的解决方法
  19. mysql基础约束详解
  20. 清华大学胡事民是计算机视觉,清华团队将Transformer用到3D点云分割上后,效果好极了丨开源...

热门文章

  1. 计算机远程桌面连接如何设置,电脑的远程桌面功能不知道怎么设置_远程桌面连接设置方法 - 驱动管家...
  2. 深度学习入门基础CNN系列——填充(padding)与步幅(stride)
  3. 《利用条件随机场实现中文病历文本中时间关系的自动提取》——阅读笔记
  4. 完美解决endnote关联不了word
  5. php 如何初始化变量的值,php中变量初始化和赋值方法
  6. python 英文文本中的关键词提取
  7. 雨课堂c语言考试题库,考试查题神器,大学章节搜题,超星章节搜题,雨课堂期末查题app...
  8. Hive查询的18种方式
  9. (三)R语言的生物信息学入门——Function, data.frame, 简单DNA读取与分析
  10. zTree开发下拉树