位置: 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)

  • 买卖煤矿
  • 所得税会计与财务会计比较研究
  • 3%简易征收范围
  • 小规模纳税人需要做进项税吗
  • 小规模纳税人每个季度超过了30万怎么办
  • 上市公司回购优先股
  • 水资源税改革试点实施情况
  • 资产负债表年初余额是不是一直不变
  • 哪些单位可以开专票
  • 一般纳税人出租不动产增值税税率
  • 公司注销时资本要交税吗
  • 7.1发票没有税号怎么开
  • 水利基金的计税依据是含税收入还是不含税收入
  • 公司车辆可以一年一检吗
  • 非流动资产基金是什么意思
  • 职工教育经费是多少
  • 收到代收款怎么做分录
  • Win7系统Syswow64文件夹是什么及能否删除的相关内
  • 把u盘变成光盘模式
  • Win11 Build 22000.65更新体验:汉化更完善,右下角返回桌面回归
  • 进项发票认证后多久可以申报
  • 资产评估增值额
  • vue编写网页
  • root面具怎么用
  • php新手入门
  • 售后租回怎么理解
  • 某建筑公司因施工期紧迫,事先未能与有关
  • 注销库存股的会计分录怎么理解
  • 个人销售非住宅无法提供原值怎么计算增值税
  • php sendmail
  • linux编译安装php扩展命令
  • 个人博客登录入口
  • 小规模附加税费
  • 现金流量表中如何考虑折旧费
  • yolo行人检测
  • 挂车车船税缴纳地点
  • php zend原理
  • python基础100例
  • javaweb实现用户登录注册
  • linux如何使用
  • 企业成本核算应遵循
  • 关税对企业有什么影响
  • 企业出租的存货包括
  • 税务局退的税款如何做账
  • 工会经费计税依据比例
  • 无形资产摊销怎么计算
  • 查账征收和核定征收有什么区别
  • 行政单位要不要税号?
  • 装修付款分期
  • 职工教育经费超过扣除限额的时候调增还是调减
  • 计提社保公积金的账务处理
  • 房地产开发企业会计制度
  • 过程中必须有哪两种状态
  • 苗木免税吗
  • 研发费用计入营业成本还能加计扣除吗
  • 买车保险返现是什么意思
  • 没有发票的福利费支出可以税前扣除吗
  • 个体工商户达到多少缴税
  • 选择业务组合的原则是什么
  • sqlserver全文索引
  • win10 电池报告
  • vmware虚拟机安装Linux教程
  • 为什么多出一个系统
  • win7系统怎么用
  • 局域网 打印机 共享
  • windows8.1怎么升级
  • centos为什么没有桌面
  • launch pxe
  • cocos2dx官方文档
  • jQuery使用ajax方法解析返回的json数据功能示例
  • java的匿名内部类
  • django发送请求
  • python ar
  • win10 python环境
  • jquery返回顶部代码
  • 全面解析皮炎
  • 纳税信用b级可以贷款多少
  • 江苏盐在什么地方
  • 河北省社保证明网上查询
  • 今年烟草税多少钱
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设