Quartus中有符号数和无符号数比较大小
有符号数和无符号数比较大小,有符号数会被当做无符号数。
代码如下。我把波形信号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中有符号数和无符号数比较大小相关推荐
- java中有符号数和无符号数,C语言中无符号数和有符号数之间的运算
C语言中有符号数和无符号数进行运算(包括逻辑运算和算术运算)默认会将有符号数看成无符号数进行运算,其中算术运算默认返回无符号数,逻辑运算当然是返回0或1了. unsigned int和int进行运算 ...
- 对verilog中有符号数和无符号数的理解
文章目录 对verilog中有符号数和无符号数的理解 对verilog中有符号数和无符号数的理解 verilog中使用signed表示有符号数,比如: wire signed [7:0] din; ...
- C语言中有符号数和无符号数的问题
C语言中有符号数和无符号数的问题 项目说明 考虑下列代码, 这段代码试图计算数组a中所有元素的和, 其中元素的数量由参数length给出: /* WARNING: This is buggy ...
- 关于汇编中有符号数和无符号数的判断
首先给一段代码 1 #include <stdio.h> 2 int main() 3 {unsigned int x=9; 4 int y=-20; 5 int m=(x+y> ...
- verilog中有符号数和无符号数的相关运算
目录 1.有符号数和有符号数的加减运算(输入和输出为原码) 2.无符号数和有符号数的加减运算(输入和输出为原码) 3.有符号数和有符号数的乘法(输入和输出为原码) 1.有符号数和有符号数的加减运算(输 ...
- c语言 有符号数与0作比较大小,C语言中有符号数与无符号数能否进行比较运算...
无符号数和有符号数是不能进行比较运算的,否则可能会出现意想不到的错误,且极难检查出来! 首先肯几个例子(假设在32位的机器上): 1 1. 0 == 0U 2 2. - ...
- 有符号数与无符号数比较大小
今天练习时发现一个很神奇的题,如下: #include <stdio.h> int i; int main() {i--;if (i > sizeof(i)){printf(&quo ...
- Verilog 和VHDL有符号数和无符号数相关运算
目录 一.Verilog有无符号数运算 1.有符号数和有符号数的加减运算(输入和输出为原码) 2.无符号数和有符号数的加减运算(输入和输出为原码) 3.有符号数和有符号数的乘法(输入和输出为原码) 二 ...
- FPGA设计中 有符号数、无符号数
FPGA设计中 有符号数.无符号数 今天给大侠聊一聊FPGA设计中有符号数以及无符号数,话不多说,上货. 在设计中,所有的算数运算符都是按照无符号数进行的.如果要完成有符号数计算,对于加.减操作通过补 ...
最新文章
- QIIME 2用户文档. 11数据筛选Filtering data(2018.11)
- 浅析聚簇索引与非聚簇索引(也叫二级索引)
- _Linux中功能强大的截图工具 - Flameshot
- Replication的犄角旮旯(二)--寻找订阅端丢失的记录
- Python-print学习
- 迄今为止最详细的ubuntu无盘工作站安装指南
- 微型计算机原理考试试卷,微机原理与应用试题库(附答案)
- 产品学习:淘宝网的架构演化案例分析
- BP神经网络算法基本原理,基于bp的神经网络算法
- OPNET网络仿真实验
- h5调用手机相机和录音机_html5 调用手机摄像头以及录音的方法
- 十六进制转float
- 阶段性总结 个人总结 (上)
- gps测试软件搜索不到星,手机搜不到星 搜星慢终极解决方法!
- asterisk1.4与asterisk1.6双机互联问题
- jQuery的文档处理
- 【总览】程序员前端、后端资源合集
- php5.3不能连接mssql数据库的解决方法
- mysql基础约束详解
- 清华大学胡事民是计算机视觉,清华团队将Transformer用到3D点云分割上后,效果好极了丨开源...
热门文章
- 计算机远程桌面连接如何设置,电脑的远程桌面功能不知道怎么设置_远程桌面连接设置方法 - 驱动管家...
- 深度学习入门基础CNN系列——填充(padding)与步幅(stride)
- 《利用条件随机场实现中文病历文本中时间关系的自动提取》——阅读笔记
- 完美解决endnote关联不了word
- php 如何初始化变量的值,php中变量初始化和赋值方法
- python 英文文本中的关键词提取
- 雨课堂c语言考试题库,考试查题神器,大学章节搜题,超星章节搜题,雨课堂期末查题app...
- Hive查询的18种方式
- (三)R语言的生物信息学入门——Function, data.frame, 简单DNA读取与分析
- zTree开发下拉树