当前位置: 首页 > news >正文

自己ip做网站网络游戏加盟合作

自己ip做网站,网络游戏加盟合作,谷建网站建设模板,做快手网站LV9_使用子模块实现三输入数的大小比较 题目来源于牛客网 [牛客网在线编程_Verilog篇_Verilog快速入门 (nowcoder.com)](https://www.nowcoder.com/exam/oj?page1&tabVerilog篇&topicId301) 题目 描述 在数字芯片设计中,通常把完成特定功能且相对独立的…

LV9_使用子模块实现三输入数的大小比较

题目来源于牛客网

[牛客网在线编程_Verilog篇_Verilog快速入门 (nowcoder.com)](https://www.nowcoder.com/exam/oj?page=1&tab=Verilog篇&topicId=301)

题目

描述

在数字芯片设计中,通常把完成特定功能且相对独立的代码编写成子模块,在需要的时候再在主模块中例化使用,以提高代码的可复用性和设计的层次性,方便后续的修改。

请编写一个子模块,将输入两个8bit位宽的变量data_a,data_b,并输出data_a,data_b之中较小的数。并在主模块中例化,实现输出三个8bit输入信号的最小值的功能。

子模块的信号接口图如下:

在这里插入图片描述

主模块的信号接口图如下:

在这里插入图片描述

输入描述:

clk:系统时钟

rst_n:异步复位信号,低电平有效

a,b,c:8bit位宽的无符号数

输出描述:

d:8bit位宽的无符号数,表示a,b,c中的最小值

编写子模块

在Verilog中,可以使用module关键字编写子模块。子模块是一种将较大的电路拆分为模块化部分的方法,使代码更易于维护和重复使用。

以下是一个简单的示例,展示了如何编写一个加法器子模块:

module Adder(input [3:0] A, input [3:0] B, output [4:0] Sum
);assign Sum = A + B;
endmodule

通过将子模块实例化到另一个模块中,可以在主模块中使用子模块。

下面是一个示例,展示了如何实例化并使用上述的加法器子模块:

module Top;// 输入和输出端口声明reg [3:0] A;reg [3:0] B;wire [4:0] Sum;// 子模块实例化Adder adder_inst(.A(A), .B(B), .Sum(Sum));// 在这里可以使用子模块的输出Sum// ...endmodule

代码思路

例化一个模块,该模块比较两个输入的大小,并输出较小的数。

例化两次该模块,实现三个数的比较。

注:

采用时序逻辑例化两次子模块时,第一个例化的最小值经过一个时钟周期才能得到,
此时若再拿去与第三个数比较大小进行第二次例化时,第三个数已经不是上个周期的数了,
解决办法就是将第三个数缓存一个周期,再进行第二次例化子模块,结果可以通过测试。

代码

`timescale 1ns/1ns
module main_mod(input clk,input rst_n,input [7:0]a,input [7:0]b,input [7:0]c,output  [7:0]d	//由图可知,a,b,c,d全为wire型);wire [7:0] min_ab;//第一次例化,比较a,b的大小compare u_compare(.clk(clk),.rst_n(rst_n),.data_a(a),.data_b(b),.data_c(min_ab));
/*采用时序逻辑例化两次子模块时,第一个例化的最小值经过一个时钟周期才能得到,
此时若再拿去与第三个数比较大小进行第二次例化时,第三个数已经不是上个周期的数了,
解决办法就是将第三个数缓存一个周期,再进行第二次例化子模块,结果可以通过测试。
*/reg [7:0] c_r;	//将c的值存储起来always @(posedge clk or negedge rst_n) beginif(!rst_n)c_r <= 0;else c_r <= c;end//第二次例化,比较a,b,c的大小compare u_compare_2(.clk(clk),.rst_n(rst_n),.data_a(min_ab),.data_b(c_r),.data_c(d));	
endmodule//子模块:比较data_a,data_b的大小,并且输出较小的数
module compare(input clk,input rst_n,input [7:0]data_a,input [7:0]data_b,output [7:0]data_c		
);	reg [7:0] result;	//定义一个reg型,将比较结果存起来always @(posedge clk or negedge rst_n) beginif(!rst_n)result <=0;else beginif(data_a > data_b)result <= data_b;else if(data_a <= data_b)result <= data_a;end	endassign data_c = result;
endmodule
http://www.yayakq.cn/news/499125/

相关文章:

  • 怎么自己制作一个好的网站全国高校校园网站建设与发展高级研修班
  • 100款免费软件网站大全wordpress慕课网
  • 如何设计网站中的上传功能杭州做兼职网站
  • 做资料分享网站暑假适合带孩子去哪里旅游
  • 做企业网站需要资质吗免费的网页模板网站
  • 企业是如何做电子商务网站成都网站建设公司兴田德润在哪儿
  • 网站建设有哪些分工分国内网站速度慢
  • 网站开发结束语如何创建一个简单的网页
  • 付费抽奖网站怎么做一学一做演讲视频网站
  • 做打折的淘宝小卖家的网站怎么做像滴滴一样网站
  • 明星网站怎么设计社交网站建设内容
  • 石家庄站布局图深圳网站建设做一个公司网站要多少钱
  • 学校网站建设具体分工wordpress分类自定义文字
  • 十大货源网站大全河南省建设厅门户网站
  • 上海网站建设友汇网站网络机房建设公司
  • 大庆市城乡建设局网站网页设计在邯郸能干什么
  • 企业网站建设公司名称宁波网络推广平台推荐
  • 北京视频网站建设Wordpress的高级版
  • 淮安网站制作设计一个公司的官网怎么做
  • 淘宝上做网站 源代码怎么给你网站搭建免费模板
  • 分析网易严选网站开发wordpress如何清缓存
  • 舟山工程建设信息网站网站流量站怎么做的
  • 哪个网站网页做的好看网站文章内链
  • 合肥网站建设哪家好价格wordpress 改系统
  • 潜江建设网站网站的专业
  • 个人手机版网站app怎么做怎么免费建立网店网站
  • 网页制作与网站建设试题seo网站诊断价格
  • 百度不收录手机网站吗上海市建设合同信息表网站
  • 传奇辅助网站怎么做国外科技网站欣赏
  • 网站域名解析失败关于网站制作的论文