hi
I need counter 4-bit with up count and down count in myhdl and convert to verilog or vhdl.
please help me
Hi,
To get help, you need to provide detailed information. Do you have a sample design to submit ?
#I wrote this program but I don’t know where I’m wrong
from myhdl import *
ACTIVE, INACTIVE = bool(0), bool(1)
DOWN,UP, stop, clk , q = [Signal(INACTIVE) for i in range(5)]
DirType = enum(‘UP’, ‘DOWN’)
def counter(DOWN,UP, stop, clk, q):
I/O pins:
--------
clk : input free-running clock
goDown : input signal to down (active-low switch)
goUp : input signal to up (active-low switch)
stop : input signal to stop counting (active-low switch)
q : 4-bit counter output
@instance
def logic():
dir = DirType.__reduce__
run = False
while True:
yield clk.posedge
# direction
if UP == ACTIVE:
dir = DirType.__init__
run = True
elif DOWN == ACTIVE:
dir = DirType.__reduce__
run = True
# stop
if stop == ACTIVE:
run = False
# counter action
if run:
if dir == DirType.__reduce:
q.next = q-1
else :
q.next = q+1
return logic
counter = counter(DOWN,UP, stop, clk, q)
counter.convert(hdl=“Verilog”, initial_values=True)
And also this app:
from random import randrange
from myhdl import *
ACTIVE_LOW, INACTIVE_HIGH = 0, 1
def Inc(count, down, enable, clock, reset):
@always_seq(clock.posedge, reset=reset)
def incLogic():
if enable:
count.next = count+1
if down:
count.next = count-1
return incLogic
conversion
m = 4
count = Signal(modbv(0)[m:])
down = Signal(bool(0))
enable = Signal(bool(0))
clock = Signal(bool(0))
reset = ResetSignal(0, active=0, isasync=True)
n=Signal(modbv(0)[3:])
counter_verilog = inc(count, down, enable, clock, reset)
counter_verilog.convert(hdl=“Verilog”, initial_values=True)
I want to count from (0000) to (1111)
with up count and down count
So what happens when you run it? I assume you’ve written some kind of test to exercise it?
Also, I suggest working a bit more on your code formatting on discourse, which is a little hard to read.
It generally does not convert to vhdl or verilog.
If you can, send me the counter code.
There are two adder designs with test code here https://rosettacode.org/wiki/Four_bit_adder#MyHDL perhaps you could base your work on one of these?