verilog 如何循环比较数据大小?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了verilog 如何循环比较数据大小?相关的知识,希望对你有一定的参考价值。

连续脉冲输出,AD采集输出,寻每个峰值,
脉冲信号:2~3us,12位并行ad40MHz。我的思路是这样的;将AD输出进行比较,每一个输出值和它前后的数进行比较,比如ad连续输出A、B、C、D、···,将A和B比较,A(假设A>B)再与C比较,这样循环比较,并记录最大值。我现在碰到的问题是,怎么实现循环比较,

参考技术A 1.用一个寄存器存最大数,如果输入的数比寄存器里的数大,就替换,如果小于,就不变,然后寄存器里的数就是最大值了

input [11:0] digital_out; //AD的输出数据

reg [11:0]max_num; //如果是多位的,就声明多位的reg
always @(posedge clk or negedge reset_n)begin
if(!reset_n)
max_num <= 12'b0;
else if(digital_out > max_num)
max_num <= digital_out;
end本回答被提问者采纳
参考技术B 不太详细哇

基于FPGA的图像增强系统的verilog开发(3000+字)

在进行FPGA设计的时候,我们需要主要以下几个方面:

第一:关于图片大小的统一

    这里,我们主要对你的直方图均衡算法进行FPGA的硬件的实现,这里,我们将图像的大小统一为100*100,这样的话,方便后期的同一处理,因为在FPGA内部进行处理的时候,由于硬件的实现不像MATLAB那么的灵活,所以需要对各个参数进行固定写死。这里设置100*100比较合适。

    运行:中的main函数,可以将四个图片同一为100*100大小的图片,然后保存为串行的数据,保存到存储器中。

第二:关于图像的存储,由于我这边只有V5的开发板,然后看了下手册,发现两个的SDRAM还是有很大差别的,所以为了你拿到程序之后能立刻的运行,这里使用FPGA内部存储器进行保存,其操作方法和外部的SDRAM是完全相同的,也是通过地址的读写进行操作的。所以这里不影响你写论文。这就是相当于使用FPGA内部的SDRAM,其地址读写等一些基本的存储器的操作过程是完全相同的。

以上是关于verilog 如何循环比较数据大小?的主要内容,如果未能解决你的问题,请参考以下文章

verilog中如何将wire类型的变量A 与reg类型的变量B进行比较?

用verilog怎样编写两个不确定值且比较其大小不等

verilog 语言中 大小比较用啥标识符?

verilog中有符号数比较可以综合吗

verilog 二维数组是如何初始化的啊?

verilog的repeat语句