[HDLBits] Conwaylife

Conway's Game of Life is a two-dimensional cellular automaton.

The "game" is played on a two-dimensional grid of cells, where each cell is either 1 (alive) or 0 (dead). At each time step, each cell changes state depending on how many neighbours it has:

  • 0-1 neighbour: Cell becomes 0.
  • 2 neighbours: Cell state does not change.
  • 3 neighbours: Cell becomes 1.
  • 4+ neighbours: Cell becomes 0.

The game is formulated for an infinite grid. In this circuit, we will use a 16x16 grid. To make things more interesting, we will use a 16x16 toroid, where the sides wrap around to the other side of the grid. For example, the corner cell (0,0) has 8 neighbours: (15,1), (15,0), (15,15), (0,1), (0,15), (1,1), (1,0), and (1,15). The 16x16 grid is represented by a length 256 vector, where each row of 16 cells is represented by a sub-vector: q[15:0] is row 0, q[31:16] is row 1, etc. (This tool accepts SystemVerilog, so you may use 2D vectors if you wish.)

  • load: Loads data into q at the next clock edge, for loading initial state.
  • q: The 16x16 current state of the game, updated every clock cycle.

The game state should advance by one timestep every clock cycle.

John Conway, mathematician and creator of the Game of Life cellular automaton, passed away from COVID-19 on April 11, 2020.

复制代码
buhuizuo
相关推荐
Troke34 分钟前
Xilinx FIFO IP中两种读模式的简单分析
fpga开发·fifo
刀法自然43 分钟前
verilog实现n分频,n为奇数
fpga开发·verilog·分频器
FPGA_小田老师1 小时前
AXI DMA IP核 SG模式 实战:基于BRAM的数据搬移仿真例程
fpga开发·axi_dma ip核·sg模式·链表模式·数据搬移
第二层皮-合肥18 小时前
50天精通FPGA设计第八天-门电路基础知识
fpga开发
超能力MAX19 小时前
八股-异步时钟单脉冲传输
fpga开发
燎原星火*20 小时前
selectio
fpga开发
sam-zy20 小时前
PY32F406K1CU6 FLASH模拟EEPROM
单片机·嵌入式硬件·fpga开发
sam-zy21 小时前
PY32F403K1CU6定时器1~6基本配置,1ms中断,每隔1秒打印
单片机·嵌入式硬件·fpga开发
Saniffer_SH1 天前
【每日一题】PCIe 里的 RefClk (Reference Clock) 到底是干什么的?
服务器·驱动开发·单片机·嵌入式硬件·fpga开发·计算机外设·硬件架构
测试专家1 天前
FPGA在TSN板卡应用
fpga开发