康威生命游戏:一个二维细胞自动机。

“游戏”是在一个二维细胞网格上进行的,每个细胞要么是1(活的),要么是0(死的)。判断依据和周围8个相邻有关。 使用一个16x16的圆环体,其中的边环绕到网格的另一侧。

//在这里我分情况考虑:

分三种情况,(1)中间部分 ,(2)四个角,(3)边缘行或列

module top_module(input clk,input load,input [255:0] data,output [255:0] q ); reg [3:0] n;reg [8:0] i;always @(posedge clk)beginif(load) q<=data;else beginfor(i=0;i<=255;i++)begin
//分三种情况,中间部分,四个角,边缘行或列
//四个角 if(i==0) n=q[1]+q[15]+q[16]+q[17]+q[31]+q[240]+q[255]+q[241];else if(i==15) n=q[14]+q[0]+q[16]+q[30]+q[31]+q[255]+q[240]+q[254];else if(i==240) n=q[1]+q[15]+q[0]+q[224]+q[225]+q[239]+q[255]+q[241];else if(i==255) n=q[14]+q[0]+q[15]+q[239]+q[224]+q[238]+q[240]+q[254];
//第一行 else if(i<15) n=q[i-1]+q[i+1]+q[i+16]+q[i+15]+q[i+17]+q[i+240]+q[i+239]+q[i+241];
//最上面(后)一行 else if(i>240) n=q[i-1]+q[i+1]+q[i-16]+q[i-15]+q[i-17]+q[i-240]+q[i-239]+q[i-241];
//第一列 else if(((i+1)%16)==0) n=q[i-1]+q[i-15]+q[i+16]+q[i+15]+q[i+1]+q[i-16]+q[i-31]+q[i-17];
//最右端一列 else if((i%16)==0) n=q[i+1]+q[i+15]+q[i+16]+q[i+31]+q[i+17]+q[i-16]+q[i-1]+q[i-15];else  n=q[i-1]+q[i+1]+q[i+16]+q[i+15]+q[i+17]+q[i-16]+q[i-15]+q[i-17];if(n==3) q[i]<=1;  else if((n<2)|(n>3)) q[i]<=0; endendendendmodule

感觉是比较繁杂的写法了。看到别人的做法是把16x16扩展成18x18来做,这样就将neighbour的取法统一了。看上去简单明了多了。

Conwaylife_HDLbits(康威生命游戏)相关推荐

  1. 康威生命游戏是如何搭建计算机的?

    2020年4月,数学家约翰·康威(John H. Conway)因新冠肺炎去世.大家回顾康威教授平生贡献时,不可避免要提到伟大.深刻的"康威生命游戏"(Conway's Game ...

  2. Python - 康威生命游戏Conway's game of life

    使用python实现康威生命游戏Conway's game of life 参考<python极客项目编程> 游戏规则: 任何四周邻居存活数少于两个的存活网格将死亡,因为人口稀少. 任何四 ...

  3. 康威生命游戏简易版python_turtle实现

    以下资料引用至百度百科 ​ 康威生命游戏(Game of Life),剑桥大学约翰·何顿·康威设计的计算机程序. 概述: 生命游戏没有游戏玩家各方之间的竞争,也谈不上输赢,可以把它归类为仿真游戏.事实 ...

  4. Python | 实现简单的康威生命游戏

    康威生命游戏是由英国教授John Horton Conway提出的一种生命仿真游戏.其具体的形式是,所有的细胞生活在一个二维平面上,一个细胞在下一个时刻的生存状态取决于当前时刻周围的各个细胞的生存状态 ...

  5. [Codewar训练]Conway's Game of Life - Unlimited Edition(康威生命游戏)

    问题: 段位:4 说明: 就是经典的康威生命游戏,输入会提供一个二维数组,然后根据提供的generations,计算出多少代的生命样子,并且需要把多余的(就是整行整列为0),外围的空间去掉,只剩下概括 ...

  6. 康威生命游戏java_Java Python 康威生命游戏 - 命令行版

    Java & Python 康威生命游戏 - 命令行版(2020年7月23日) 制作背景 高二的时候看霍金的<大设计>最后几页的时候看到里面提到了康威生命游戏,介绍了它的规则,感觉 ...

  7. Go语言模拟康威生命游戏Conway‘s Game of Life

    康威生命游戏是一种很有意思的游戏,显示的是细胞的生死状态取决于周边细胞(相邻8个细胞)的存活状态,是一种模拟生命的演化过程. 反过来看,还可模拟病毒的传染,患者传染给接触者,也可以设定概率,另外是否戴 ...

  8. 用Verilog实现二维细胞自动机——康威生命游戏(Conway's Game of Life)

    在一个二维的棋盘上,每个格子有存活(1)和死亡(0)两种状态.在每个时间周期,每个格子会根据他的8个邻居来决定自己下一个周期的状态: 0-1个邻居:人口稀少,死亡(0): 2个邻居:保持原状态: 3个 ...

  9. C语言康威生命游戏,【2020存档】康威生命游戏(CGoL)研究进展

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 1.历史概述 生命游戏,由康威发明于1970年,同年登载在科学杂志上,引发一阵风潮. 最早的发现是在1969年末,康威和研究生初步探索B3/S23时,发现 ...

最新文章

  1. ACL 2020三大奖项出炉!知名学者夫妇曾先后获终身成就奖,时间检验奖回溯95年经典著作...
  2. git stash pop冲突_这有一份 git 日常使用清单,你需要吗?
  3. C# window forms Treeview checkbox子节点和父节点相互选中的关系
  4. 如何在GraphPad Prism 9图表上添加图片或其他对象
  5. c语言键盘控制数码管显示,3*4矩阵键盘控制4位数码管显示的C程序
  6. ege限制鼠标移动的函数_浅谈函数节流和函数防抖
  7. DroidBox的环境搭建与使用(Android沙箱、未验证)
  8. 别被官方文档迷惑了!这篇文章帮你详解yarn公平调度
  9. 寻求web和数据库开发的小哥哥
  10. 各种版本mysql驱动包下载地址
  11. apache-DOS
  12. laravel 阿里云短信验证码
  13. 计算机与英语的关系论文摘要,中国计算机专业研究生英文学术论文摘要中元话语的使用与特征研究...
  14. leetCode 318 最大单词长度乘积(位掩码,位运算,二进制)
  15. IT能力框架(模型)
  16. 京东商品SKU数据采集方法
  17. 先进过程控制之一:浅说APC
  18. 常见的 ChatGPT 相关错误提示及解决办法
  19. URULE规则引擎——决策树
  20. 对python的理解_《对》字意思读音、组词解释及笔画数 - 新华字典 - 911查询

热门文章

  1. 史上最让人动心的十大IT广告语(多图)
  2. NumPy入门讲座(5):实战演练
  3. 职场“加班”那些事之病态的加班文化
  4. 【鸿蒙OS开发入门】06 - 启动流程代码分析之KernelOS:之启动Linux-4.19 Kernel内核 启动init进程
  5. Arduino IDE无法打开问题解决
  6. 云客Drupal源码分析之Session进阶
  7. 【论文阅读】Graphonomy: Universal Human Parsing via Graph Transfer Learning通过图迁移学习进行的通用人体解析
  8. sqli-labs系列——第一关
  9. 干货:Web测试检查清单
  10. 10天精读掌握:计算机组成与设计(COAD:Patterson and Hennessy) (第2天 2018/10.25)