`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer:
//
// Create Date: 15:09:32 06/13/2017
// Design Name:
// Module Name: inv_cordivision
// Project Name:
// Target Devices:
// Tool versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
////////////////////////////////////////////////////////////////////////////////// module inv_cordivision
#(
parameter DATA_SIZE = ,
parameter PIPELINE_LEN =
)
(
input clk, input nd,
input [DATA_SIZE- : ] x_in,
input [DATA_SIZE- : ] y_in,
input [DATA_SIZE- : ] z_in, output rdy,
output[DATA_SIZE- : ] x_out,
output[DATA_SIZE- : ] y_out,
output[DATA_SIZE- : ] z_out
); generate wire rdy_temp [PIPELINE_LEN : ];
wire [DATA_SIZE- : ] x_temp [PIPELINE_LEN : ];
wire [DATA_SIZE- : ] y_temp [PIPELINE_LEN : ];
wire [DATA_SIZE- : ] z_temp [PIPELINE_LEN : ]; assign rdy_temp[] = nd;
assign x_temp[] = x_in;
assign y_temp[] = y_in;
assign z_temp[] = z_in; assign rdy = rdy_temp[PIPELINE_LEN];
assign x_out = x_temp[PIPELINE_LEN];
assign y_out = y_temp[PIPELINE_LEN];
assign z_out = z_temp[PIPELINE_LEN]; genvar i;
for(i=;i<(PIPELINE_LEN);i=i+)
begin : unit
inv_cordivision_unit
#(
.DATA_SIZE ( DATA_SIZE ),
.FRAC_SIZE ( DATA_SIZE- ),
.LEVEL ( i )
)
i2
(
.clk(clk), .nd(rdy_temp[i]),
.x_in(x_temp[i]),
.y_in(y_temp[i]),
.z_in(z_temp[i]), .rdy(rdy_temp[i+]),
.x_out(x_temp[i+]),
.y_out(y_temp[i+]),
.z_out(z_temp[i+])
);
end endgenerate endmodule module inv_cordivision_unit
#(
parameter DATA_SIZE = ,
parameter FRAC_SIZE = ,
parameter LEVEL =
)
(
input clk, input nd,
input signed [DATA_SIZE-:] x_in,
input signed [DATA_SIZE-:] y_in,
input signed [DATA_SIZE-:] z_in, output reg rdy,
output reg signed [DATA_SIZE-:] x_out,
output reg signed [DATA_SIZE-:] y_out,
output reg signed [DATA_SIZE-:] z_out
); parameter[DATA_SIZE-:] ONE = **(FRAC_SIZE);
reg signed [DATA_SIZE-:] x_w=,y_w=,z_w=;
//时序逻辑
always @( posedge clk )begin
rdy <= nd;
x_out <= x_w;
y_out <= y_w;
z_out <= z_w;
end //组合逻辑
always @( * )
begin
x_w = x_in;
if( y_in[DATA_SIZE-] != x_in[DATA_SIZE-] )
begin
y_w = y_in + (x_in>>>(LEVEL));
z_w = z_in - (ONE>>(LEVEL));
end
else
begin
y_w = y_in - (x_in>>>(LEVEL));
z_w = z_in + (ONE>>(LEVEL));
end
end endmodule

测试代码:

`timescale 1ns / 1ps

////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer:
//
// Create Date: 16:25:28 06/13/2017
// Design Name: inv_cordivision
// Module Name: F:/INV/ise/inv/inv_cordivision_tst.v
// Project Name: inv
// Target Device:
// Tool versions:
// Description:
//
// Verilog Test Fixture created by ISE for module: inv_cordivision
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////// module inv_cordivision_tst; // Inputs
reg clk;
reg nd;
reg [:] x_in;
reg [:] y_in;
reg [:] z_in; // Outputs
wire rdy;
wire [:] x_out;
wire [:] y_out;
wire [:] z_out; // Instantiate the Unit Under Test (UUT)
inv_cordivision uut (
.clk(clk),
.nd(nd),
.x_in(x_in),
.y_in(y_in),
.z_in(z_in),
.rdy(rdy),
.x_out(x_out),
.y_out(y_out),
.z_out(z_out)
); parameter PERIOD = ; initial begin
clk = 'b0;
#(PERIOD/);
forever
#(PERIOD/) clk = ~clk;
end initial begin
// Initialize Inputs
nd <= ;
x_in <= ;
y_in <= ;
z_in <= ; // Wait 100 ns for global reset to finish
#; // Add stimulus here nd <= ;
x_in <= ;
y_in <= ;
z_in <= ; end endmodule

测试结果:

基于coridc算法的定点小数除法器的实现的更多相关文章

  1. 判断用户输入的银行卡号是否正确--基于Luhn算法的格式校验

    开发中,有时候,为了打造更好的用户体验,同时减轻服务器端的压力,需要对于一些如,手机号码,银行卡号,身份证号码进行格式校验 下面是判断银行卡号输入是否正确的代码(基于Luhn算法的格式校验): iOS ...

  2. #研发解决方案#基于Apriori算法的Nginx+Lua+ELK异常流量拦截方案

    郑昀 基于杨海波的设计文档 创建于2015/8/13 最后更新于2015/8/25 关键词:异常流量.rate limiting.Nginx.Apriori.频繁项集.先验算法.Lua.ELK 本文档 ...

  3. 基于DES算法加密的防撞库密码系统项目总结

    项目内容:基于DES算法加密的防撞库密码系统 小组名:zqhzkzkj 目标:1.对用户输入的8位字符进行DES加密,要求用户输入8位密钥 2.对于不同的网站,不同的用户名生成不同的密码 小组成员:周 ...

  4. 陕西中际现代:基于自适应算法的PLC滴灌控制系统

    基于自适应算法的PLC滴灌控制系统 陕西中际现代包装科技有限公司滴灌部 1.介绍 水资源正在成为一种珍贵的资源.城镇的市民使用成千上万立方的水来浇灌花园和绿地.他们依赖于使用固定灌溉计划的控制器.而这 ...

  5. 【转】基于RSA算法实现软件注册码原理初讨

    1 前言 目前,商用软件和共享软件绝大部份都是采用注册码授权的方式来保证软件本身不被盗用,以保证自身的利益.尽管很多常用的许多软件系统的某些版本已经被别人破解,但对于软件特殊行业而言,注册码授权的方式 ...

  6. 基于Zlib算法的流压缩、字符串压缩源码

    原文:基于Zlib算法的流压缩.字符串压缩源码 Zlib.net官方源码demo中提供了压缩文件的源码算法.处于项目研发的需要,我需要对内存流进行压缩,由于zlib.net并无相关文字帮助只能自己看源 ...

  7. 基于MMSeg算法的中文分词类库

    原文:基于MMSeg算法的中文分词类库 最近在实现基于lucene.net的搜索方案,涉及中文分词,找了很多,最终选择了MMSeg4j,但MMSeg4j只有Java版,在博客园上找到了*王员外*(ht ...

  8. 基于Apriori算法的Nginx+Lua+ELK异常流量拦截方案 郑昀 基于杨海波的设计文档(转)

    郑昀 基于杨海波的设计文档 创建于2015/8/13 最后更新于2015/8/25 关键词:异常流量.rate limiting.Nginx.Apriori.频繁项集.先验算法.Lua.ELK 本文档 ...

  9. R语言︱情感分析—基于监督算法R语言实现(二)

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 笔者寄语:本文大多内容来自未出版的<数据 ...

随机推荐

  1. 词根:lun = moon, 表示“月亮”

    词根:lun = moon, 表示“月亮” lunar [lun月亮,-ar形容词后缀,…的] 月亮的,太阴的,似月的,新月形的 semilunar [semi-半,lun月亮,-ar形容词后缀,…的 ...

  2. 48 【golang】json的效率

    本文将主要做如下几方面的测试: 1,构造一个[100]struct的数组,然后来测试它的json编码后的字符串 或者([]byte),首先关心它的功能是否正常: 2,在很早之前,我们在使用golang ...

  3. 分支&循环

    分支 单分支 if 条件: 满足条件后要执行的代码 双分支 if 条件: 满足条件执行代码 else: if条件不满足就走这段 多分支: if 条件: 满足条件执行代码 elif 条件: 上面的条件不 ...

  4. redis常用服务安装部署

    常用服务安装部署   学了前面的Linux基础,想必童鞋们是不是更感兴趣了?接下来就学习常用服务部署吧! 安装环境: centos7 + vmware + xshell 即将登场的是: mysql(m ...

  5. android中ScrollView嵌套ListView或GridView显示位置问题

    Android中ScrollView中嵌套ListView或GridView时在开始进入界面时总是显示中间位置,开头的位置显示不出来.这种情况下只需要在ScrollView的父控件中添加以下两行代码即 ...

  6. 探索未知种族之osg类生物---渲染遍历之裁剪二

    前言 上一节我们大致上过了一遍sceneView::cull()函数,通过研究,我们发现上图中的这一部分的代码才是整个cull过程的核心部分.所以今天我们来仔细的研究一下这一部分. sceneView ...

  7. VMware NAT做端口映射

    转自百度 原文地址: https://jingyan.baidu.com/article/c35dbcb0d1ff248916fcbc0d.html 注意事项:Window宿主电脑要调整防火墙.

  8. python3 安装 basemap 包(windows10)

    下载 pyproj 和 basemap 的安装包 basemap 是具有专业标准的地图绘制工具,可以与 matplotlib 的一般绘图功能结合,在地图上绘制数据. basemap 文档:https: ...

  9. 快速实现抖音的分享&登录(android)

    快速实现抖音分享与第三方登录 准备工作 1.注册抖音的key到抖音开放平台,点击这里查看步骤: 2.集成ShareSDK到Mob官网文档页面查看即可,点击这里查看集成: 业务代码 分享要求: 视频: ...

  10. @ReequestParam

    @RequestParam:传递参数,即将请求参数区数据映射到功能处理方法的参数上 eg. public String queryUserName(@RequestParam String usern ...