parallel to serial
Edward Vidal <[email protected]> Fri, 15 Jan 2016 02:26:27 +0000 (UTC)
| Newsgroups | gmane.comp.python.myhdl |
|---|---|
| Message-ID | <[email protected]> |
Hello All,I found this VHDL code on the web.library ieee;
use ieee.std_logic_1164.all;
entity piso is
port(
clk,load : in std_logic;
pi : in std_logic_vector(35 downto 0);
so : out std_logic);
end piso;
architecture arch of piso is
signal t : std_logic;
signal temp: std_logic_vector(35 downto 0);
begin
process (clk,pi,load)
begin
if (load='1') then
temp(35 downto 0) <= pi(35 downto 0);
elsif (CLK'event and CLK='1') then
t <= temp(35);
temp(35 downto 1) <= temp(34 downto 0);
temp(0) <= '0';
end if;
end process;
so <= t;
end arch;I create a test bench in ise and it appears to be okay.from myhdl import *
import argparse
W0 = 36
pp0 = Signal(intbv(0)[W0:])
ss0 = Signal(bool(0))
clk = Signal(bool(0))
ld = Signal(bool(0))
def cliparse():
parser = argparse.ArgumentParser()
parser.add_argument("--build", default=False, action='store_true')
parser.add_argument("--test", default=False, action='store_true')
parser.add_argument("--convert", default=False, action='store_true')
args = parser.parse_args()
return args
def para2ser(clk, pp0, ss0, ld):
t = Signal(bool(0))
temp = Signal(intbv(0)[W0:])
@always(clk.posedge)
def logic():
if (ld == 1):
temp[36:0].next = pp0[36:0]
else:
t.next = int(temp[36:35])
temp[36:1].next = temp[35:0]
temp[1:].next = int(0)
ss0.next = t
return logic
def tb(clk, pp0, ss0, ld):
instance_1 = para2ser(clk, pp0, ss0, ld)
@always(delay(10))
def clkgen():
clk.next = not clk
@instance
def stimulus():
pp0.next = 34359738368
yield clk.posedge
ld.next = 1
yield clk.posedge
ld.next = 0
yield clk.posedge
print ("%s %d") % (bin(pp0,36), ss0 )
for i in range(36):
yield clk.posedge
print ("%d %s %d") % (i, bin(pp0,36), ss0 )
raise StopSimulation
return instances()
def convert(args):
toVHDL(para2ser,clk, pp0, ss0, ld)
toVerilog(para2ser,clk, pp0, ss0, ld)
def main():
args = cliparse()
if args.test:
tb_fsm = traceSignals(tb,clk, pp0, ss0, ld)
sim = Simulation(tb_fsm)
sim.run()
if args.convert:
convert(args)
if __name__ == '__main__':
main()
Can someone tell me what I am doing wrong? I think it this line
temp[1:].next = int(0)I have tried without the int and I get the same results when I run python para2ser.py --test
Thanks
Regards, Edward Vidal Jr. e-mail [email protected] 915-595-1613
------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140
_______________________________________________
myhdl-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/myhdl-list