筛选最小值---verilog

`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer: chensimin
//
// Create Date: 2018/12/07 15:30:20
// Design Name:
// Module Name: aes_dru
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
////////////////////////////////////////////////////////////////////////////////// module aes_dru ( input wire clk,
input wire rst ); //--------------------------------------------------------------------- //计数器,方便对生成的序列进行定位,仿真时,生成信号源的好思路 reg [:] cnt_for_serin = ; always @ (posedge clk or posedge rst)
begin
if(rst)
cnt_for_serin <= ;
else
cnt_for_serin <= cnt_for_serin + 'b1;
end //--------------------------------------------------------------------- //生成serin序列 reg serin = ; always @ (posedge clk or posedge rst)
begin
if(rst)
serin <= ;
else
begin
case(cnt_for_serin)
: serin <= 'b1;
: serin <= 'b0;
: serin <= 'b1;
: serin <= 'b0;
: serin <= 'b1;
default: serin <= serin;
endcase
end
end //--------------------------------------------------------------------- reg [:] inffs = ; always @ (posedge clk or posedge rst)
begin
if(rst)
inffs <= ;
else
inffs <= {inffs[:], serin};
end //--------------------------------------------------------------------- //边沿检测可以检测上升沿和下降沿 assign edge_detect = ^inffs[:]; //--------------------------------------------------------------------- //计算出两个脉冲之间的时钟周期 reg [:] min_cntr = ; always @ (posedge clk or posedge rst)
begin
if(rst)
min_cntr <= ;
else if(edge_detect)
min_cntr <= ;
else
min_cntr <= min_cntr + ;
end //--------------------------------------------------------------------- //对边沿脉冲进行计数 reg [:] update_cntr = ; always @ (posedge clk or posedge rst)
begin
if(rst)
update_cntr <= ;
else if(edge_detect)
update_cntr <= update_cntr + 'b1;
end //--------------------------------------------------------------------- //当边沿脉冲数满后,产生一个叫update_min的脉冲 wire update_min; assign update_min = update_cntr == {{'b1}}; //--------------------------------------------------------------------- //当updata_min脉冲到来时,最小值设定为全1,new_min成为更新min_capture的条件 reg [:] min_capture = ; always @ (posedge clk or posedge rst)
begin
if(rst)
min_capture <= ;
else if(edge_detect)
begin
if(update_min)
min_capture <= {{'b1}};
else if(new_min)
min_capture <= min_cntr;
end
end assign new_min = min_cntr < min_capture; //--------------------------------------------------------------------- //当结束完一个计数周期后,用min_hold 锁存本周期的最小值 reg [:] min_hold = ; always @ (posedge clk or posedge rst)
begin
if(rst)
min_hold <= ;
else if (edge_detect & update_min)
min_hold <= min_capture;
end //--------------------------------------------------------------------- // reg [:] sample_cntr = ; always @ (posedge clk or posedge rst)
begin
if(rst)
sample_cntr <= ;
else if (edge_detect | (sample_cntr >= min_hold))
sample_cntr <= ;
else
sample_cntr <= sample_cntr + ;
end //--------------------------------------------------------------------- endmodule /* add_force {/aes_dru/clk} -radix hex {1 0ns} {0 25000ps} -repeat_every 50000ps
add_force {/aes_dru/rst} -radix hex {1 0ns} {0 100ns} */

仿真结果:

筛选最小值---verilog的更多相关文章

  1. Leetcode:378. Kth Smallest Element in a Sorted Matrix

    题目: Given a n x n matrix where each of the rows and columns are sorted in ascending order, find the ...

  2. MongoDB驱动之Linq操作

    添加下面命名空间到您的程序中: using MongoDB.Driver.Linq; 声明一变量保存对集合的引用 var collection = database.GetCollection< ...

  3. nyoj847 S + T(贪心)

    题目847 题目信息 执行结果 本题排行 讨论区 S + T 时间限制:1000 ms  |  内存限制:65535 KB 难度: 描写叙述 给你一个长度为n的整数序列A1.A2,--,An,找出两个 ...

  4. Queue-PriorityQueue源码解析

    Queue队列通常是先进先出(FIFO),但也有特殊的非FIFO,如本文也分析的PriorityQueue. Queue接口 Queue接口定义的方法: 添加元素接口: add(E e) -> ...

  5. MYSQL 二次筛选,统计,最大值,最小值,分组,靠拢

    HAVING 筛选后再 筛选 SELECT CLASS,SUM(TOTAL_SCORES) FROM student_score GROUP BY CLASS HAVING SUM(TOTAL_SCO ...

  6. pandas 筛选某一列最大值最小值 sort_values、groupby、max、min

    高效方法: dfs[dfs['delta'].isnull()==False].sort_values(by='delta', ascending=True).groupby('Call_Number ...

  7. 【转载】使用Pandas对数据进行筛选和排序

    使用Pandas对数据进行筛选和排序 本文转载自:蓝鲸的网站分析笔记 原文链接:使用Pandas对数据进行筛选和排序 目录: sort() 对单列数据进行排序 对多列数据进行排序 获取金额最小前10项 ...

  8. 开始VS 2012中LightSwitch系列的第4部分:太多信息了!使用查询来排序和筛选数据

    [原文发表地址]  Beginning LightSwitch in VS 2012 Part 4: Too much information! Sorting and Filtering Data ...

  9. [ACM_其他] 总和不小于S的连续子序列的长度的最小值——尺缩法

    Description: 给定长度为n的整数数列,A[0],A[1],A[2]….A[n-1]以及整数S,求出总和不小于S的连续子序列的长度的最小值.如果解不存在,则输出0. Input: 输入数据有 ...

随机推荐

  1. 修改VScode行号区的背景颜色

    vs code是相当不错的一个编辑器,现阶段我用来编写nim程序. vs code非常丧心病狂一点就是行号区和编辑区的背景颜色都是一样, 这样会导致要看行首有没有对齐会非常吃力.这个问题让我纠结了非常 ...

  2. Bootstrap 总结

     Bootstrap 首先要引入下面三个文件   <!-- 新 Bootstrap 核心 CSS 文件 --> <link href="https://cdn.bootcs ...

  3. IP通信基础课堂笔记----第四章(重点中的重点)

    IPv4编址方法 一个IPv4地址可表示为一个32位的二进制数. IP地址前面的网络部分表示一个网段,后面部分(主机位)表示这个网段上的一台设备. 常用IP地址分为四类:A.B.C.D. 每类的网络地 ...

  4. OpenGL 3D旋转的木箱

    学习自: https://learnopengl-cn.github.io/01%20Getting%20started/08%20Coordinate%20Systems/#3d 0,首先添加glm ...

  5. crtontab定时执行任务

    1.crontab介绍:crontab命令用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行. 2.查看当前用户的定时任务:cronta ...

  6. 《贝贝GO》隐私政策

    隐私政策 贝贝GO尊重并保护所有使用服务用户的个人隐私权.为了给您提供更准确.更有个性化的服务,贝贝GO会按照本隐私权政策的规定使用和披露您的个人信息.但贝贝GO将以高度的勤勉.审慎义务对待这些信息. ...

  7. ABP框架(asp.net core 2.X+Vue)模板项目学习之路(二)--切换MySql数据库

    前言: 大家好,今天给大家带来ABP第二篇的分享,在写这篇分享的时候非常的困难,因为发现ABP的框架越是深入.难度也就越大,而且深刻感觉到自己领域驱动开发知识的欠缺,前段时间买了两本有关于领域驱动知识 ...

  8. (原创)Spice 网表范例

    一.常规网表 Inverter .lib "D:\lib\l0040ll_v1p4_1r.lib" TT .param SUPPLY=.1V .param T=10ns .para ...

  9. C# 保存屏幕截图

    //屏幕宽 int iWidth = Screen.PrimaryScreen.Bounds.Width; //屏幕高 int iHeight = Screen.PrimaryScreen.Bound ...

  10. 不使用Visual Studio开发ASP.NET MVC应用(下篇)

    书接上回! 前文“纯手工”.彻底抛弃Visual Studio,制作了一个ASP.NET MVC应用,运行起来还不错,项目目录.源代码.web.config等所有东西都已经做到“最简”,除去了Visu ...