首页 > 其他分享 >12个数排序

12个数排序

时间:2024-10-29 14:59:27浏览次数:6  
标签:cnt 12 wire DATA 个数 WIDTH NUM 排序 data

12个数进行排序后输出

'''verilog
module new_12 #(

 parameter DATA_WIDTH = 8,
 parameter DATA_NUM = 12

)(

      input wire [DATA_WIDTH-1:0] data_in [DATA_NUM-1:0]

     ,output wire [DATA_WIDTH-1:0] data_out[DATA_NUM-1:0]

);

genvar i;

reg [DATA_NUM-1:0] cnt [DATA_NUM-1:0];
generate

for(i=0;i<DATA_NUM;i=i+1) begin: SEL_12
sel_l_func lnst(

  .data     (data_in[i]   )

 ,.data_ln  (data_in     )

 ,.cnt_res  (cnt[i]      )

 );

end

endgenerate

wire[DATA_WIDTH-1:0] data_o [DATA_NUM-1:0];
reg [DATA_WIDTH-1:0] data_o_d[DATA_NUM-1:0];
generate

for(i=0;i<DATA_NUM;i=i+1) begin: DATA_OUT

assign data_o[i] = (cnt[0 ] == 1) ? data_in[0 ] :

                    ((cnt[1 ]   == 1) ? data_in[1 ] :

                    ((cnt[2 ]   == 1) ? data_in[2 ] :

                    ((cnt[3 ]   == 1) ? data_in[3 ] :

                    ((cnt[4 ]   == 1) ? data_in[4 ] :

                    ((cnt[5 ]   == 1) ? data_in[5 ] :

                    ((cnt[6 ]   == 1) ? data_in[6 ] :

                    ((cnt[7 ]   == 1) ? data_in[7 ] :

                    ((cnt[8 ]   == 1) ? data_in[8 ] :

                    ((cnt[9 ]   == 1) ? data_in[9 ] :

                    ((cnt[10] == 1) ? data_in[10] : data_in[11]))))))))));

end

endgenerate

endmodule

module sei_1_func #(

 parameter DATA_WIDTH = 8,
 parameter DATA_NUM = 12

)(

      input wire [DATA_WIDTH-1:0] data
     ,input wire [DATA_WIDTH-1:0] data_in [DATA_NUM-1:0]

     ,output wire [DATA_NUM-1 :0] cnt_res

);

wire [DATA_NUM-1:0] cnt;

genvar i;

generate

for(i=0;i<DATA_NUM;i=i+1) begin: SEL_1

 assign cnt[i] = data > data_in[i] ? 'd1 : 'd0;

end

endgenerate

assign cnt_res = cnt[0] + cnt[1] + cnt[2] + cnt[3] + cnt[4] + cnt[5] + cnt[6] + cnt[7] + cnt[8] + cnt[9] + cnt[10] + cnt[11];
endmodule
'''

标签:cnt,12,wire,DATA,个数,WIDTH,NUM,排序,data
From: https://www.cnblogs.com/sw-xiao/p/18513276

相关文章

  • CSE 125/225 Implementing Multiple Module
    CSEx25LabAssignment3WelcometoCSE125/225!Eachlabisformedfromoneormoreparts.Eachpartisrelativelyindependentandpartscannormallybecompletedinanyorder.Eachpartwillteachaconceptbyimplementingmultiplemodules.Eachlabwillb......
  • 东方博宜1266 - 求最大数
    问题描述问555555的约数中最大的三位数是多少?输入无。输出约数中最大的三位数。样例输入输出C++#include<iostream>usingnamespacestd;intmain(){intnum=555555;intlargestDivisor=0;for(inti=1;i<=num;i++){if(......
  • C#“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序”的解决方案
    当使用C#语言连接Access数据库时,即使安装有64位版本的Office,也会出现“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序。”这个问题。从Office2016开始,困扰了我好多年。以往的解决之道(也是网上给出的方法)是:1、彻底卸载并安装32位的Office2、更改注册表、数据库等......
  • 用正则表达式获取json字段排序
    varReg01=newRegex($"\"fd9e\"\\s*?:\\s*?(\".*?)\"");varReg02=newRegex($"\"fe1e\"\\s*?:\\s*?(\".*?)\"");dtoList=dtoList.Select(a=>new{ dto=a,H=getMatchReg01(Reg02......
  • 算法与数据结构——计数排序
    计数排序计数排序(countingsort)通过统计元素数量来实现排序,通常应用于整数数组。简单实现给定一个长度为n的数组nums,其中的元素都是“非负整数”,计数排序的整体流程如下:遍历数组,找出其中最大的数组,记为m,然后创建一个长度为m+1的辅助数组counter。借助counter统计nums中各......
  • DC/DC直流电源升压可调电压控制输出模块12v24v供电0-5v/0-10v转0-50v/80v/100v/110v/1
    特点效率高达75%以上1*2英寸标准封装单电压输出可直接焊在PCB上工作温度:-40℃~+75℃阻燃封装,满足UL94-V0要求温度特性好电压控制输出,输出电压随控制电压线性变化应用GRB系列模块电源是一种DC-DC升压变换器。该模块电源的输入电压分为:4.5~9V、9~18V、18~36V及36~7......
  • antdesign vue 步骤条a-step按审核人员节点排序显示逻辑
    一、需求内容目前审核人员角色有:学术、法务、售后,串行执行审核流程。审核流程:发起/修改审核-》审核节点审核节点规则:学术-》法务-》售后,每个节点均可以审核或修改。审核状态:发起、修改、待审核、已审核。因此前端根据节点规则来展示审核步骤给用户。二......
  • Debian12 搭建LNMP环境,配置SSL证书,安装WordPress
    一、安装并配置PHPSSH连接上VPS之后,我们先更新一下系统组件,使用下面的命令。aptupdate-y&&aptupgrade-y接着输入下面的命令安装PHP和相关组件aptinstallphp-fpmphp-mysqlphp-gdphp-cliphp-curlphp-mbstringphp-zipphp-opcachephp-xmlphp-mysqli-y查看/et......
  • ▲基于CNN卷积神经网络的QPSK信号检测matlab仿真,对比CNN不同卷积层个数对检测性能影
    目录1.QPSK调制信号简介2.CNN基本原理3.基于CNN的QPSK信号检测原理4.MATLAB程序4.仿真结果5.完整程序下载    在现代通信系统中,信号检测是一个至关重要的环节。随着深度学习技术的发展,卷积神经网络(ConvolutionalNeuralNetwork,CNN)在信号处理领域展现出......
  • 市面上很火的1234567转成视频数字人,数字人克隆一比一复刻
    功能介绍:数字人克隆一比一复刻,效果媲美真人水平我们是支持单视频不限制时长,我们的是导入2K还是4K的视频模型,输出的也是2K/4K的会员期间无限量不限制创作条数,不限量克隆形象,非积分模式无限合成并非市面上那些数字人按分钟技费的设备需求:安卓9.0以上......