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

  • 一般纳税人的税收优惠政策
  • 企业所得税如何合理避税?
  • 税收实体法有哪18种
  • 餐饮费入什么科目
  • 政府会计制度等式
  • 超市小票能否入库
  • 个人所得税10月突然增加了
  • 工会经费发放奖金需要代扣个税吗
  • 工资进成本还是费用
  • 递延收益影响当期损益吗
  • 年金个税税率表
  • 一般纳税企业可以变更小微企业吗
  • 别人开业送的花怎么说
  • 免税企业如何做年终汇算清缴
  • 自然人出租房屋房产税
  • 房地产企业转让股权缴纳土地增值税
  • 分公司分税
  • 利得一定会影响利润吗
  • 进项税额不得抵扣在哪个科目
  • 付款时收到应收票据会计分录怎么做?
  • 坏账损失的账务处理办法
  • 累计折旧属于什么
  • 处理固定资产开什么发票
  • 申报更正退税增值税申报表如何反应
  • 已经发货了点击确认收货可以吗?
  • 联通官网测网速
  • win10电脑声道怎么设置
  • 增值税应税行为是什么意思
  • 转销股票会计分录
  • php开发实例大全
  • 企业购进的商品是什么
  • php post数据
  • 为什么会有不同的人种
  • 权益类证券投资包括
  • 零售企业商品盘点发生溢余后,在查明原因前,应按
  • 待报解预算收入待结算财政款项
  • 经营范围技术服务技术开发技术咨询技术交流
  • 买汽车计算公式
  • 印花税购销合同改为买卖合同
  • 企业所得税应按季预缴,年末汇算清缴
  • sqlserver2012开发版
  • 充电口有烧焦味怎么简单解决
  • 企业会计准则子公司
  • 按揭贷款买房是否划算
  • 行政事业单位资产报废账务处理
  • mysql复制粘贴
  • 为什么出口退税率低于适用税率
  • 大家怎么看理想这个牌子
  • 专项应付款在借方
  • 制造费用和生产成本期末有余额吗
  • 发票本月没有认证能用吗
  • 空调抵扣进项税
  • 期初建帐
  • 税务稽查其他应付款
  • 培训机构账务处理
  • 累计折旧用什么账页格式
  • 职工教育经费的差旅费可以抵扣吗
  • centos which
  • windows升级10
  • mac验证码无法显示怎么办
  • SIMETER.EXE - SIMETER是什么进程 有什么用
  • windows7启用远程访问
  • 选择打开程序
  • win7右下角点击没反应
  • win7系统配置怎么设置
  • win7计算机怎么设置开机密码
  • win8整理磁盘碎片的步骤
  • linux小技巧
  • 控制面板win8在哪里
  • Unity3D游戏开发(第2版)pdf
  • jquery开源
  • javascript判断题
  • js可以实现网页中哪些效果
  • js实现生成随机的圆
  • 生猪屠宰行业
  • 水电费收税
  • 广东省国家税务局电子发票系统,网络设置
  • uk在哪里看开票截止日期
  • 不动产租赁如何征税
  • 税务投诉电话12345
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设