0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

vistaでquartus その21

Posted at

概要

vistaでquartusやってみた。
7seg led、光らせてみた。
polyphonyで書いてみた。
0を表示してみた。

環境

windows vista 32bit
quartus ii v13.0
polyphony v0.3.6
ep2c5t144ボード
qyf-tm1638ボード

写真

CIMG2964.JPG

接続

vcc -- 5v 
dio -- pin25
clk -- pin24
stb -- pin8
gnd -- gnd

サンプルコード

from polyphony import module, testbench, is_worker_running
from polyphony.io import Port
from polyphony.typing import bit, bit8
from polyphony.timing import clksleep, clkfence, wait_value

@module
class boss:
	def __init__(self):
		self.busy = Port(bit, 'in')
		self.stb = Port(bit, 'out', 1)
		self.start = Port(bit, 'out', 0)
		self.data = Port(bit8, 'out', 1)
		self.h = [0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00]
		self.append_worker(self.main_worker)
	def main_worker(self):
		i = 0
		while is_worker_running():
			self.start.wr(0)
			if (i < 1):
				wait_value(0, self.busy)
				self.start.wr(0)
				self.stb.wr(1)

				self.data(0x88)
				self.stb.wr(0)
				self.start.wr(1)
				clksleep(3)
				wait_value(0, self.busy)
				self.start.wr(0)
				self.stb.wr(1)

				self.data(0x40)
				self.stb.wr(0)
				self.start.wr(1)
				clksleep(3)
				wait_value(0, self.busy)
				self.start.wr(0)
				self.stb.wr(1)

				self.data(0xc0)
				self.stb.wr(0)
				self.start.wr(1)
				clksleep(3)
				wait_value(0, self.busy)
				self.start.wr(0)

				self.data(self.h[0])
				self.start.wr(1)
				clksleep(3)
				wait_value(0, self.busy)
				self.start.wr(0)

				self.data(0x01)
				self.start.wr(1)
				clksleep(3)
				wait_value(0, self.busy)
				self.start.wr(0)

				self.data(self.h[1])
				self.start.wr(1)
				clksleep(3)
				wait_value(0, self.busy)
				self.start.wr(0)

				self.data(0x01)
				self.start.wr(1)
				clksleep(3)
				wait_value(0, self.busy)
				self.start.wr(0)

				self.data(self.h[2])
				self.start.wr(1)
				clksleep(3)
				wait_value(0, self.busy)
				self.start.wr(0)

				self.data(0x01)
				self.start.wr(1)
				clksleep(3)
				wait_value(0, self.busy)
				self.start.wr(0)

				self.data(self.h[3])
				self.start.wr(1)
				clksleep(3)
				wait_value(0, self.busy)
				self.start.wr(0)

				self.data(0x01)
				self.start.wr(1)
				clksleep(3)
				wait_value(0, self.busy)
				self.start.wr(0)

				self.data(self.h[4])
				self.start.wr(1)
				clksleep(3)
				wait_value(0, self.busy)
				self.start.wr(0)

				self.data(0x01)
				self.start.wr(1)
				clksleep(3)
				wait_value(0, self.busy)
				self.start.wr(0)

				self.data(self.h[5])
				self.start.wr(1)
				clksleep(3)
				wait_value(0, self.busy)
				self.start.wr(0)

				self.data(0x01)
				self.start.wr(1)
				clksleep(3)
				wait_value(0, self.busy)
				self.start.wr(0)

				self.data(self.h[6])
				self.start.wr(1)
				clksleep(3)
				wait_value(0, self.busy)
				self.start.wr(0)

				self.data(0x01)
				self.start.wr(1)
				clksleep(3)
				wait_value(0, self.busy)
				self.start.wr(0)

				self.data(self.h[7])
				self.start.wr(1)
				clksleep(3)
				wait_value(0, self.busy)
				self.start.wr(0)

				self.data(0x01)
				self.start.wr(1)
				clksleep(3)
				wait_value(0, self.busy)
				self.stb.wr(1)
				self.start.wr(0)

				self.data(0x88)
				self.stb.wr(0)
				self.start.wr(1)
				clksleep(3)
				wait_value(0, self.busy)
				self.stb.wr(1)
				self.start.wr(0)
				i = i + 1

m = boss()

@testbench
def test(m):
	m.busy.wr(0)
	for i in range(20):
		wait_value(1, m.start)
		m.busy.wr(1)
		data = m.data.rd()
		print(data)
		m.busy.wr(0)

test(m)





以上。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?