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

「HDLBits题解」Cellular automata

本专栏的目的是分享可以通过HDLBits仿真的Verilog代码 以提供参考 各位可同时参考我的代码和官方题解代码 或许会有所收益


题目链接:Rule90 - HDLBits

module top_module(input clk,input load,input [511:0] data,output [511:0] q );always @ (posedge clk) begin if (load) q <= data ; elseq <= {1'b0, q[511:1]} ^ {q[510:0], 1'b0} ;end
endmodule

题目链接:Rule110 - HDLBits

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

题目链接:Conwaylife - HDLBits

module top_module(input clk,input load,input [255:0] data,output [255:0] q ); reg [255:0] q_next;reg [3:0] sum;always@(posedge clk) beginif(load)q <= data;else beginfor(int i=0; i<256; i++) begin  //使用阻塞赋值,使sum得出后在该时钟周期内q立即变化,而不需要等到下个周期。if(i == 0)  //左上角sum = q[1] + q[16] + q[17] + q[240] + q[241] + q[15] + q[31] + q[255];else if(i == 15)    //右上角sum = q[14] + q[16] + q[0] + q[240] + q[254] + q[30] + q[31] + q[255];else if(i == 240)   //左下角sum = q[0] + q[15] + q[239] + q[241] + q[1] + q[224] + q[225] + q[255];else if(i == 255)   //右下角sum = q[0] + q[15] + q[14] + q[224] + q[238] + q[240] + q[239] + q[254];else if(0<i & i<15) //上边界sum = q[i-1] + q[i+1] + q[i+15] + q[i+16] + q[i+17] + q[i+239] + q[i+240] + q[i+241];else if(i%16 == 0)  //左边界sum = q[i-1] + q[i+1] + q[i+15] + q[i+16] + q[i+17] + q[i-16] + q[i-15] + q[i+31];else if(i%16 == 15) //右边界sum = q[i-1] + q[i+1] + q[i+15] + q[i+16] + q[i-17] + q[i-16] + q[i-15] + q[i-31];else if(240<i & i<255)  //下边界sum = q[i-1] + q[i+1] + q[i-17] + q[i-16] + q[i-15] + q[i-239] + q[i-240] + q[i-241];else //非边界sum = q[i-1] + q[i+1] + q[i-17] + q[i-16] + q[i-15] + q[i+15] + q[i+16] + q[i+17];case(sum) //根据邻居数量判断次态2:q_next[i] = q[i];3:q_next[i] = 1;default:q_next[i] = 0;endcaseendq = q_next;endend
endmodule
http://www.lryc.cn/news/287157.html

相关文章:

  • 什么是API ?
  • Pytest中conftest.py的用法
  • java.lang.IllegalArgumentException: When allowCredentials is true
  • vue折叠展开transition动画使用keyframes实现
  • 书生·浦语大模型实战营-学习笔记5
  • 10. Profile
  • YOLO 自己训练一个模型
  • 3.Eureka注册中心
  • 基于springboot+vue的墙绘产品展示交易平台系统(前后端分离)
  • 网络原理-初识(1)
  • 【GitHub项目推荐--人脸识别】【转载】
  • NLP自然语言处理介绍
  • 在线WebOffce在HTML/VUE/Electron纯前端网页编辑Office之打开Word后自动处于修订模式
  • thinkphp+vue+mysql旅游推荐攻略分享网站p0667
  • 华为系统底层是用Java写的吗?和安卓的区别?
  • sql server 修改表前 先判断是否有这个列
  • 解决网站高并发问题的策略?
  • 浙政钉实现埋点(浙政钉-H5小程序应用采集开发手册)
  • 【笔记】Helm-4 最佳实践-3 模板
  • 网络爬虫基本原理的介绍
  • Qt配置OpenCV
  • 单片机I/O口驱动MOS管
  • k8s---helm
  • HarmonyOS(十三)——详解自定义组件的生命周期
  • 设计模式-责任链
  • ubuntu怎么安装docker
  • UE4运用C++和框架开发坦克大战教程笔记(十五)(第46~48集)
  • 《Linux系列》Linux虚拟机,LVM逻辑卷扩容,xfs文件系统扩容
  • springboot(ssm动漫手办商城 动漫周边商系统Java系统
  • 卸载 MariaDB: