位置: IT常识 - 正文

【HDLBits刷题日记】05 More Verilog Features(高效刷题app)

编辑:rootadmin
Conditional 使用三目运算符可以实现一个数据选择器,可以替代if语句,不过:?可读性较差,复杂逻辑还是推荐用if。 注意这道题中间变量的定义,不定义中间变量表达式会变得十分复杂且可读性差。 module top_module ( input Conditional

推荐整理分享【HDLBits刷题日记】05 More Verilog Features(高效刷题app),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:hdoj刷题指南,高效刷题app,hdu刷题,hdu刷题,刷题在线,高效刷题app,hdoj刷题指南,刷题功能,内容如对您有帮助,希望把文章链接给更多的朋友!

使用三目运算符可以实现一个数据选择器,可以替代if语句,不过:?可读性较差,复杂逻辑还是推荐用if。

注意这道题中间变量的定义,不定义中间变量表达式会变得十分复杂且可读性差。

module top_module ( input [7:0] a, b, c, d, output [7:0] min);// // assign intermediate_result1 = compare? true: false; wire [7:0] min_1,min_2; assign min_1=a>b?b:a; assign min_2=min_1>c?c:min_1; assign min=min_2>d?d:min_2;endmoduleReduction

归约运算符,双目运算符直接用在多位变量前使用,可以实现归约操作。这里使用了一个异或的归约操作,实现了偶校验。

module top_module ( input [7:0] in, output parity); assign parity = ^in;endmoduleGates100

同样是使用一个归约运算符,实现100输入的与、或、异或运算。

module top_module( input [99:0] in, output out_and, output out_or, output out_xor ); assign out_and=∈ assign out_or=|in; assign out_xor=^in;endmoduleVector100r【HDLBits刷题日记】05 More Verilog Features(高效刷题app)

按照提示用了一个for循环,for循环一般用于仿真,这里也可以用于反转位序。

答案用了一个$bits()系统函数,可以直接返回信号的位宽。

module top_module( input [99:0] in, output [99:0] out); integer i=0; always@(*) begin for(i=0;i<100;i=i+1) begin out[i]=in[99-i]; end endendmodulePopcount255

同样使用了一个for循环,也可以把in中每位的数加起来,就不用if判断了。

module top_module( input [254:0] in, output [7:0] out ); reg [7:0] count; always@(*) begin count = 0; for(int i=0;i<$bits(in);i=i+1) begin if(in[i]==1'b1) count=count+1'b1; end end assign out=count;endmoduleAdder100i

题目意思是使用例化数组或者generate语句,感觉这两种用法用的并不多,不过还是尝试写了一下。

直接for循环

module top_module( input [99:0] a, b, input cin, output [99:0] cout, output [99:0] sum ); always@(*) begin for(int i=0;i<100;i=i+1) begin {cout[i],sum[i]}=a[i]+b[i]+((i==0)?cin:cout[i-1]); end endendmodule

实例化数组

module top_module( input [99:0] a, b, input cin, output [99:0] cout, output [99:0] sum ); add adder[99:0]( .cin({cout[98:0],cin}), .a(a[99:0]), .b(b[99:0]), .sum(sum[99:0]), .cout(cout[99:0]) );endmodulemodule add( input cin, input a, input b, output sum, output cout); assign {cout,sum}=cin+a+b;endmodule

generate for语句

module top_module( input [99:0] a, b, input cin, output [99:0] cout, output [99:0] sum ); genvar i; generate for(i = 0;i<$bits(sum);i=i+1) begin:gen add adder( .cin((i==0)?cin:cout[i-1]), .a(a[i]), .b(b[i]), .sum(sum[i]), .cout(cout[i]) ); end endgenerateendmodulemodule add( input cin, input a, input b, output sum, output cout); assign {cout,sum}=cin+a+b;endmoduleBcdadd100

这道题同样也是用实例化数组或者generate for语句。

module top_module( input [399:0] a, b, input cin, output cout, output [399:0] sum ); wire [98:0]c; bcd_fadd u_bcd_fadd[99:0]( .a(a[399:0]), .b(b[399:0]), .cin({c[98:0],cin}), .cout({cout,c[98:0]}), .sum(sum[399:0]) );endmodule
本文链接地址:https://www.jiuchutong.com/zhishi/311843.html 转载请保留说明!

上一篇:python模块的搜索顺序分析(python搜索函数)

下一篇:Go 语言入门 1-管道的特性及实现原理(go语言ui)

  • 半年奖个人所得税怎么算的
  • 沥青混凝土可以放多久
  • 组成计税价应该是含税价还是不含税价?
  • 包装物租金要交消费税吗为什么
  • 销售费用福利费编码
  • 前一年的发票第二年改抬头
  • 研发支出期末余额列报
  • 劳务公司代发工资合法吗
  • 发出材料汇总表金额怎么算
  • 企业开办费用的预算
  • 建筑业统一发票可以抵扣吗
  • 开了红字发票印花税怎么处理?
  • 投资款怎样缴印花税?
  • 银行直接扣的手续费怎么记账
  • 专票多开怎么算
  • 开餐费发票要开具数量和单价吗
  • 会员的消费频次怎么计算
  • 开发经济适用房是否需要缴纳土增税
  • 发票代码不是10位,怎么提示输入12位的
  • 印花税的征收范围
  • 残疾人就业保障金是什么意思啊
  • safari浏览器开发者模式
  • linux耳机插拔检测
  • 公益性捐赠所得税税前扣除标准
  • 事业单位福利发放时间
  • 稿酬计入工资所得吗
  • 所得税年报期间费用明细表
  • 旅游费用账务处理
  • 苹果电脑记笔记
  • 接的网线影响传输吗
  • 进货折扣适用于什么条件
  • 浅谈使用链式管理加强特殊监管场所
  • 付员工经济补偿金计入工资总额吗
  • 筹建期间业务招待费的处理
  • 其他业务收入产品包括
  • php fopen()
  • 出口免税和退税交附加税
  • vue3+vite+typescript出现does not provide an export named ‘xxx‘ 解决方法
  • react-use
  • php_fpm
  • opencv讲解
  • php多线程编程
  • 管家婆付款单凭证科目如何修改
  • 私募基金成立的规模条件
  • 出口退税转内销的话如何算发票金额
  • mysql select语法的使用
  • 如何保护数据库
  • xadmin配置
  • 应交税费增值税销项税
  • 出售固定资产的损失计入什么科目
  • 金税盘一天可以开多少张发票
  • 检查sqlserver是否安装完成
  • 企业福利费账务处理
  • 小规模纳税人附加税减免政策2023
  • 差旅费住宿费专票
  • 内含增长率简易公式如何理解
  • 发票有什么重要性
  • 工程结算一般由什么等方式
  • 外购入库暂估补差单
  • 普通日记账如何记账
  • 什么叫归集和分配
  • sql语言中delete删除命令语句详解
  • win8玩英雄联盟
  • 使用http_load来给Linux系统的服务器做压力测试
  • linux解析命令
  • os x yosemite dp5下载地址 os x 10.10 dp5更新内容
  • win8.1怎么设置自动关机
  • windows的批处理是如何实现的
  • window8系统桌面啥样的
  • win8系统安装教程图解
  • cocos2d-js-min.js
  • unity着色器在哪
  • javascript中的数据类型分为两大类
  • jquery删除dom
  • js编程中要使用到函数,分为哪几步?
  • wordpress开发文档
  • 中国进口国外品牌排行榜
  • 北京市国家税务网
  • 为什么要征收城乡土地
  • 建筑企业应如何选择适用的质量体系标准
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设