筛选最小值---verilog
筛选最小值---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的更多相关文章
- 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 ...
- MongoDB驱动之Linq操作
添加下面命名空间到您的程序中: using MongoDB.Driver.Linq; 声明一变量保存对集合的引用 var collection = database.GetCollection< ...
- nyoj847 S + T(贪心)
题目847 题目信息 执行结果 本题排行 讨论区 S + T 时间限制:1000 ms | 内存限制:65535 KB 难度: 描写叙述 给你一个长度为n的整数序列A1.A2,--,An,找出两个 ...
- Queue-PriorityQueue源码解析
Queue队列通常是先进先出(FIFO),但也有特殊的非FIFO,如本文也分析的PriorityQueue. Queue接口 Queue接口定义的方法: 添加元素接口: add(E e) -> ...
- MYSQL 二次筛选,统计,最大值,最小值,分组,靠拢
HAVING 筛选后再 筛选 SELECT CLASS,SUM(TOTAL_SCORES) FROM student_score GROUP BY CLASS HAVING SUM(TOTAL_SCO ...
- pandas 筛选某一列最大值最小值 sort_values、groupby、max、min
高效方法: dfs[dfs['delta'].isnull()==False].sort_values(by='delta', ascending=True).groupby('Call_Number ...
- 【转载】使用Pandas对数据进行筛选和排序
使用Pandas对数据进行筛选和排序 本文转载自:蓝鲸的网站分析笔记 原文链接:使用Pandas对数据进行筛选和排序 目录: sort() 对单列数据进行排序 对多列数据进行排序 获取金额最小前10项 ...
- 开始VS 2012中LightSwitch系列的第4部分:太多信息了!使用查询来排序和筛选数据
[原文发表地址] Beginning LightSwitch in VS 2012 Part 4: Too much information! Sorting and Filtering Data ...
- [ACM_其他] 总和不小于S的连续子序列的长度的最小值——尺缩法
Description: 给定长度为n的整数数列,A[0],A[1],A[2]….A[n-1]以及整数S,求出总和不小于S的连续子序列的长度的最小值.如果解不存在,则输出0. Input: 输入数据有 ...
随机推荐
- carthage和cocoapods
http://www.jianshu.com/p/b5607b8b9348 http://www.jianshu.com/p/5ccde5f22a17 1.在brew install carthage ...
- c# 连接数据库SqlHelper
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threa ...
- 用6个案例说明如何恢复PXC集群
原文链接:https://blog.csdn.net/zengxuewen2045/article/details/51868976 1. 案例一:三个节点,关闭一个 由于维护和配置变更等工作需要 ...
- Verilog中的reg一定会被综合成寄存器么
对应于实际的数字电路中,如果该程序块描述的是时序逻辑,则该寄存器变量对应为寄存器:如果该程序块描述的是组合逻辑,该寄存器变量对应为硬件逻辑:如果该程序块描述的是不完全组合逻辑,那么该寄存器变量也可以对 ...
- NodeJs 设置跨域后页面全部变成了源码在浏览器上显示
百度搜索跨域后得到 app.all('*', function(req, res, next) { res.header("Access-Control-Allow-Origin" ...
- who are we?
human been like animals,we work for our master. when we dreaming,we drive the machine run.
- 【oacle入门】表空间类型
系统表空间 系统表空间包括SYSTEM和SYSAUX表空间,系统表空间是所有数据库必须且自动创建的,一般存放在Oracle的数据字典表及相应数据. 永久表空间 永久表空间用户保存永久性数据,如系统数据 ...
- 设计模式的uml图的关键(核心)
每个设计模式的关键的部位就是,其变化点.用抽象来封装变化点 如下图的代理模式 关键点就是框图内的subject定义了 实际对象 和代理对象都具有的接口.才形成代理模式
- QTP自动化测试
原文链接:https://www.cnblogs.com/xiezhidong/p/6784684.html ♣Qtp是什么? ♣测试用例网站 ♦注册与登录 ♦测试脚本 ◊录制 ...
- 实验六 CC2530平台上P2P通信的TinyOS编程
实验六 CC2530平台上P2P通信的TinyOS编程 实验目的: 加深和巩固学生对于TinyOS编程方法的理解和掌握 让学生初步的掌握射频通信TinyOS编程方法 学生通过本实验应理解TinyOS中 ...