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

【HDLBits习题 2】Circuit - Sequential Logic(4)More Circuits

1. Rule90(Rule 90)

方法1:

module top_module (output 	reg	[511:0]	q,input 				clk,input 				load,input 		[511:0] data
); integer i;always @(posedge clk) beginif (load == 1'b1) beginq <= data;end else beginfor (i=0; i<$bits(q); i=i+1) beginif (i == 0) beginq[0]	<= q[1];end else if (i == 511) beginq[511] 	<= q[510];end else beginq[i] 	<= q[i+1]^q[i-1];endendendend
endmodule

方法2:

        根据首位两端的部分计算式:

                q[0]        = q[1]    ^    1'b0

                q[1]        = q[2]    ^    q[0]

                        ...

                q[510]    = q[511]    ^    q[509]

                q[511]    =  1'b0      ^    q[510]

可以得出实际用于计算的范围。对于一个n-bit的值q,其计算范围如下所示:

                q = { 1'b0, q[n: 1] }  ^  { q[n-1: 0], 1'b0 };

对于本题,其计算范围则如下所示:

                q = { 1'b0, q[511: 1] }  ^  { q[510: 0], 1'b0 };

module top_module (output 	reg	[511:0]	q,input 				clk,input 				load,input 		[511:0] data
); always @(posedge clk) beginif (load == 1'b1) beginq <= data;end else beginq <= {1'b0, q[511:1]} ^ {q[510:0], 1'b0};endend
endmodule

2. Rule110(Rule 110)

module top_module (output 	reg	[511:0]	q,input 				clk,input 				load,input 		[511:0] data
); wire [511:0] q_left, q_right;always @(posedge clk) beginif (load == 1'b1) beginq <= data;end else beginq <= (q_left ^ q_right) | (q_left & q & ~q_right);endendassign q_left	= {1'b0, q[511:1]};assign q_right	= {q[510:0], 1'b0};
endmodule

3. Conwaylife(Conway's Game of Life 16x16)

http://www.dtcms.com/a/272479.html

相关文章:

  • AI驱动的业务系统智能化转型:从静态配置到动态认知的范式革命
  • 基础 IO
  • Spring Boot中的中介者模式:终结对象交互的“蜘蛛网”困境
  • JAVA JVM的内存区域划分
  • Redis的常用命令及`SETNX`实现分布式锁、幂等操作
  • Redis Stack扩展功能
  • K8S数据流核心底层逻辑剖析
  • AI进化论06:连接主义的复兴——神经网络的“蛰伏”与“萌动”
  • k8s集群--证书延期
  • 项目进度管控依赖Excel,如何提升数字化能力
  • 调度器与闲逛进程详解,(操作系统OS)
  • UI前端与数字孪生结合案例分享:智慧城市的智慧能源管理系统
  • 数据结构笔记10:排序算法
  • Windows 本地 使用mkcert 配置HTTPS 自签名证书
  • Java并发 - 阻塞队列详解
  • XSS(ctfshow)
  • 文心大模型4.5开源测评:保姆级部署教程+多维度测试验证
  • 图书管理系统(完结版)
  • PyCharm 中 Python 解释器的添加选项及作用
  • 创始人IP如何进阶?三次关键突破实现高效转化
  • QT解析文本框数据——详解
  • pycharm中自动补全方法返回变量
  • 自动化脚本配置网络IP、主机名、网段
  • React封装过哪些组件-下拉选择器和弹窗表单
  • 常用的.gitconfig 配置
  • 【显示模块】嵌入式显示与触摸屏技术理论
  • HarmonyOS AI辅助编程工具(CodeGenie)UI生成
  • 时序数据库的存储之道:从数据特性看技术要点
  • 使用深度学习框架yolov8训练监控视角下非机动车电动车头盔佩戴检测数据集VOC+YOLO格式11999张4类别步骤和流程
  • UEditor 对接 秀米 手机编辑器流程与问题