irclog2html for #openjtag on 20051026

00:48.33lennertka6sox-office: ping?
00:49.34ka6sox-officepong
00:49.37lennertwhee
00:49.46lennerti have to interface two different clock domains
00:49.49ka6sox-officewazzup
00:50.01lennertand i thought you might be able to lend me a hand
00:50.13ka6sox-officecould be!
00:50.50lennerti have a 50mhz clock for some logic, and 1.8432mhz for an uart
00:50.53lennertthe uart works fine
00:51.14lennertthe clocks aren't derived from each other
00:51.22ka6sox-officeyep
00:51.33lennertso, what i thought was..
00:51.57lennerthave two t flipflops
00:52.05lennertone of them driven by clock 1, other one by clock 2
00:52.08lennertxor their Q outputs
00:52.32lennertif that is 1, the 1-deep 8-bit fifo is in the 'full' state, otherwise it's 'empty'
00:52.44lennertdoes that make sense?
00:52.50lennert(i'm trying to solve this generically)
00:53.34ka6sox-officeyou want to syncronize the 50mhz to 1.8432?
00:53.48lennerti want the 50mhz logic to be able to send stuff over serial, and receive stuff
00:53.54lennertso two ways
00:55.03ka6sox-officegive me 2 minutes here.
00:55.06lennertnp!
00:55.15lennerttoday is my no sleep day
00:55.17lennert:)
00:55.28ka6sox-officeugh
01:03.32ka6sox-officeif you use overflow then it makes sense.
01:03.38ka6sox-office(or a carry bit)
01:03.38lennert'overflow'
01:03.40lennert?
01:04.01ka6sox-office8bit counter with "overflow" or carry bit (so that you can chain them)
01:04.39lennertwell
01:04.41ka6sox-officewhen I get home on my dev system I can look at the incantation.
01:04.43lennertactually, i have two t-flipflops
01:04.52ka6sox-officethat will do.
01:04.53lennertXORed they are the 'fifo status' indication (empty/full)
01:04.56lennertand a separate 8 bit register
01:05.06lennertthat 8 bit register is a 'holding area' for TX/RX bytes
01:05.07ka6sox-officejust treat them as fifo's
01:05.12lennertwell
01:05.15lennertmy fifo is 1 deep
01:06.04ka6sox-officesame with mine...I should send you some code I did for handling a 50mhz bus talking to a ~712khz bus
01:06.14lennertokay
01:06.22lennertsince it's not a totally crazy idea, i'll try to implement it
01:06.22ka6sox-officeand the busses were different sizes too.
01:06.29ka6sox-officenot crazy
01:06.33lennertthe two t flipflops was the easiest i could come up with
01:06.36lennertdifferent clock domains suck
01:06.46ka6sox-officetreat them separatly
01:06.49lennertyeah
01:06.50ka6sox-officeand flag them
01:06.57lennertif you want deeper fifos i guess you have to use gray coding or something
01:07.18ka6sox-officeso you would signal the TX buffer (to the uart) and say that you have a byte to send
01:07.30ka6sox-officewhen its done is sends back the "done' flag
01:07.35lennertyes, that's the idea
01:07.43lennertthe sender and receiver have an 'enable'
01:07.49ka6sox-officeand likewise for the RX
01:07.55lennert50mhz clock up while enable active -> byte gets loaded into fifo
01:08.06ka6sox-officeyou have to have "flow control" with that big of a clock difference"
01:08.11lennert1.8432mhz clock up while enable active and fifo is full -> byte gets unloaded
01:08.22lennertthe XOR of the two t flipflops is the 'fifo full' signal
01:08.24ka6sox-officeexactly
01:08.29ka6sox-officeworks for me!
01:08.34lennertthe TX keeps enable high until the load is successful
01:08.36lennertokay!
01:10.39ka6sox-officeyou send me your code too!!
01:10.45lennert:)
01:10.45ka6sox-officeand i'll look too!
01:10.52lennerti have a subversion tree that has all my crap in it
01:11.04lennertnot in a public place yet, i couldn't get svnweb to work
01:11.15lennert(any recommendations for something like svnweb?)
01:11.28ka6sox-officesvk is what I'm looking at for s3projects.
01:12.25lennertsovuk
01:13.23lennerti'll have a look
01:13.27lennertSVN::Web was dependency hell
01:13.38lennertka6sox-office: i have supervga pong now
01:13.45ka6sox-officesweet!
01:13.53lennertka6sox-office: finally got the clock manager thingy in the spartan to work
01:14.50lennertthe best pixel clock rate for 640x480 turned out to be 50.000MHz times 17/24 :)
01:15.08lennerti.e. 35.416MHz-ish
01:16.04ka6sox-officefast.
01:27.25lennertka6sox-office: for 1024x768 in 80Hz it's about 77MHz
01:28.28lennertka6sox-office: my vt100 emulator calculates pixels 8 at a time so it doesn't really matter
01:28.37lennertka6sox-office: (vt100 emulator's display part is done)
01:36.20ka6sox-officecurrently fixing Vservers...so I'll be a bit :)
01:36.51[g2]lennert are you using the block ram at all ?
01:37.05lennert[g2]: for the display buffer, yes
01:37.16lennert[g2]: and for font storage
01:37.32[g2]and the UART FIFO ? :)
01:37.40lennertuart fifo is just a bunch of flipflops
01:37.44lennertno block ram
01:38.03[g2]I'm suggesting a small 8 / 16 byte fifo
01:38.26[g2]ring buffer with a 3 bit or 4 bit register
01:38.29lennertthat can in theory be added fairly easily, yes
01:38.46lennertit's mostly useful if you want to interface it with a cpu core
01:38.56lennert(which is what i'll be doing on the virtex board :)
01:39.36[g2]I'd think you'd want a wider interface for the virtex cpu
01:39.51lennertit's a win to be 16450-compatible
01:40.07[g2]16550 ?
01:40.19lennertor that
01:40.23lennertanything 8250-derivative
01:40.41[g2]well the 450s and 550 have 14 byte fifo iirc
01:40.53[g2]and thresholding on the int generation
01:41.00lennertcould be, yes
01:41.20lennertresponse times for a cpu core are more variable
01:41.35lennertfor what i'm using it for right now, response time is not an issue and thus a single byte fifo suffices
01:42.13[g2]oh you're kicking ass, I'm just wondering where you are headed :)
01:42.30[g2]and wondering what the real underlying issues are
01:43.04lennert[g2]: other people are doing good work on the jtag front but i'll be trying that anyway, just for fun :)
01:43.34[g2]well there's no shortage of good work to be done in my mind
01:43.40[g2]the more the merrier
01:43.49lennertalways enough asses to kick, you mean?
01:43.51[g2]doing good work that is
01:44.33lennerteveryone here is kicking major ass
01:45.40[g2]IMHO we're in the final stretch of the open boxen
01:46.27[g2]this JTAG piece is the last key and the JTAG debugging is the icing on the cake
01:48.00lennert[g2], but the ixp4xx gate mask is not open sourced :)
01:48.20[g2]heh
01:48.41lennertsome really has to do the open-source LEG
01:48.44lennerts/some/someone/
01:48.45[g2]there's a guy around here that does X-rays for $25-30
01:49.01lennertxrays of chips?
01:49.13[g2]it's an x-ray machine
01:49.32lennertnot sure how useful that is for chips
01:49.33[g2]dunno the rs
01:49.38[g2]dunno the res
01:49.59lennertin any case, we don't need to look at intel's stuff, we'll just design something better :)
01:50.20[g2]did you see the PPC announcement ?
01:50.33lennertnope/
01:51.19[g2]http://www.linuxdevices.com/news/NS7626583293.html
01:51.35[g2]won't be till late next year
01:51.45[g2]but they've got a good idea
01:52.35lennert24 serdes!
01:53.17[g2]lennert wets pants
01:53.39lennerti want an fpga with 24 gige ethernet ports
01:53.51lennert(at an affordable price)
01:54.50[g2]I'd think a PC with 2 10G PCI-E cards would be close enough
01:55.05lennertnot as fun
01:55.11lennertnor as powerful
01:55.28[g2]but _way_ cheaper
01:55.39[g2]that's the affordable part
01:55.47lennertsure, but it's not as if i have a real need to do 25 gigabit routing
01:55.55lennert(at the lowest possible cost)
01:56.00lennertjust want more toys to play with
01:56.04lennerttoys toys toys
01:57.51lennertokay, time to go to work
02:05.35[g2]:)
02:05.51[g2]so do you pull an all-night once a week ?
02:13.38*** join/#openjtag dyoung-web (n=80ab9a96@nslu2-linux/dyoung)
02:37.15lennert[g2]: kind of, yeah
02:37.22lennertdyoung-web: whom are you trying to repell?
02:37.30lennert[g2]: sometimes twice :)
02:38.06lennert[g2]: today i have to pick up wife from the airport at 9am, which is a time that i haven't been awake at for a long long time now
02:38.27lennert[g2]: and i forgot to do some stuff at work, so i decided to go back to work (at 4am :) and just stay up
02:41.05[g2]lennert well godspeed and safe driving
02:41.21dyoung-webokay, that one was my fault.
02:41.29dyoung-web"wheres my prompt"
02:41.39dyoung-webbecause I forgot to install their shell. :/
02:42.06[g2]heh
02:42.20lennert[g2]: you can't kill much when you're by bicycle
02:42.37lennert[g2]: i don't even have a car..
02:42.46dyoung-webwear lots of blinky lights?
02:43.04[g2]are there two seats on the bike ?
02:44.31lennert[g2]: one seat :)
02:44.56lennert[g2]: well, we're used to that here.. anyway, it never gets really cold here, we just have the North Sea wind to deal with
02:47.48[g2]ahh... newlyweds :)
02:48.04*** join/#openjtag ka6sox-away (n=ka6sox@nslu2-linux/ka6sox)
02:51.16ka6sox-awayokay lennert: I'm home.
02:51.32ka6sox-awaywhere should I look for your files?
02:57.51lennertka6sox-away: i don't actually have them in a publicly accessible place yet
02:58.03lennertka6sox-away: i can send you a tarball of my current svn tree
02:59.09lennertka6sox-away: after i finish mutilating this 'ere windows 2000 server, that is
03:02.17ka6sox-awaylennert cool!
03:02.21ka6sox-awayI'll add it :)
03:06.04ka6sox-awayhas anyone spoken to dyoung-web?
03:08.19lennertokay, let me get to that
03:10.38lennertoh this is so damn VILE
03:11.02lennertwhat i'm doing to this windows box is beyond words.. i love it
03:16.13ka6sox-awayow ow ow owwwww
04:29.44lennertka6sox-away: http://www.wantstofly.org/~buytenh/vhdl/fifo.vhd
04:29.56lennertka6sox-away: i didn't try synthesizing it yet, but does it look approx. okay?
04:32.04lennerthang on, reorganising
04:32.47ka6sox-awayI never worried about the states...just used flags....
04:33.05lennertthey are flags here..
04:33.17ka6sox-awaywhen I wrote to the fifo I just told the next process to start and when it was finished just signal
04:33.19lennertbut a_state='0' b_state='0'  and  a_state='1' b_state='1' both mean empty
04:33.25ka6sox-awayI agree.
04:33.45ka6sox-awaybut its much simpler logic to just signal when thru.
04:34.04lennertcan you reload?
04:34.10ka6sox-awayyep
04:35.02ka6sox-awaythere ya go...much easier to read.
04:35.15ka6sox-awaytry synthesizing this and see where it blows up :)
04:35.21ka6sox-away(doesnt' look like it will)
04:35.56lennertyeah, i'll test
04:36.12lennerti'll use slide switches as inputs and leds as outputs
04:36.32ka6sox-awayah....similar to what you were going to have dyoung do?
04:36.33ka6sox-away:)
04:36.39lennertsssssh :)
04:36.45ka6sox-awayhe he
04:36.57dyoung-webhahahahahaha
04:37.32ka6sox-awaypsssst...dyoung-web: use this as a starting place...(don't tell lennert)
04:38.00lennert(i don't care if dyoung copies someone else's vhdl, 'cause that way he'll also learn how it's done)
04:38.29ka6sox-awayyes but I want proper semaphores :)
04:41.00lennertka6sox-away: how do you mean?
04:41.41ka6sox-awayj/k
04:42.01ka6sox-awaywhen you reorged it became clear... :)
04:42.08lennerthehe
04:42.24lennertthe solution wasn't clear to me until i implemented it
04:46.26lennert'tis almost time for me to go
04:47.29ka6sox-awaygo...lets see...this is a no sleep night?
04:47.32ka6sox-away7am?
04:47.38lennertyeah
04:47.51lennerthave to pick up other half from the airport round 9
04:48.02ka6sox-awayoh yeah...wednesday! w00t
04:48.22lennert:)
04:48.28lennertdouble you zero zero tee
04:52.05lennertka6sox-away: i think there's still a problem if wr_state toggles before rd_port does
04:52.44lennertka6sox-away: i think wr_state should be delayed one write clock
04:53.21ka6sox-awayit can become metastable if you are looking at rising_edge for both.
04:53.30lennertyes
04:53.36lennertthat's the case i'm worried about
04:54.08ka6sox-awayyou can always look at falling edge too!
04:54.12lennertbut well.. that'd reduce the performance of the fifo to half..
04:54.20lennertka6sox-away: falling edge where?
04:54.41lennertka6sox-away: you want wr_state to activate on the falling edge?
04:54.54lennertka6sox-away: what if there is a valid falling edge _before_ the rising edge?
04:55.21lennertrd_state xor wr_state can go to zero just after a rising wr_clock edge
04:55.42lennertin which case the falling edge would set wr_state, and the next rising edge would set rd_port
04:55.46ka6sox-awaydoesnt' matter you are only looking at level.
04:56.08lennert?
04:56.37lennertwoosh.. that's the sound of ka6sox-away going over my head
04:56.43ka6sox-awaydistracted here....
04:56.47lennertnp
04:56.47ka6sox-away1 minute...
05:05.45lennerti'm thinking just to pipeline 'rd_state xor wr_state' in the reader
05:05.54lennertsignal blah : std_logic;
05:06.00lennertblah <= rd_state xor wr_state;
05:06.12lennertif rising_edge(rd_clock) and rd_enable = '1' and blah = '1'
05:06.13lennert...
05:06.43lennerthmmmm
05:06.58lennerti should also export "rd_state xor wr_state" as fifo_full :P
05:07.08ka6sox-awayyou could.
05:08.40lennertnew version uploaded that exports fifo_full
05:09.05lennertwhoops, should have been an inout
05:09.07ka6sox-awayokay I need to take care of my wife.
05:09.20ka6sox-awaysignals dont care
05:09.30lennertokay
05:09.37lennerti'll run soon, so catch you later
05:09.39lennertthanks for your help
05:10.51ka6sox-awaynp
05:11.40lennertnew version uploaded
05:11.46lennertthis delays fifo_full by one read clock
05:12.24lennertwill stare at it a bit more on the train
05:28.39lennertka6sox-away: this version is kickass
05:33.45ka6sox-awaycool!
06:22.33*** join/#openjtag ep1220 (n=NN@gate.epatec.at)
06:25.49ka6sox-awaymorning
06:25.58ka6sox-awayya..I am always here :)
06:26.10ka6sox-awayexcept when I'm not.
06:26.28ep1220maybe the PC is right beside Your bed :-)
06:32.00vmasterheh, mine is - but still there are hours when i simply sleep
06:32.31ka6sox-awayme too...but its about my bed time here GMT-7
06:33.04ka6sox-awaythis is my lappy and thats where it spends a lot of time.
07:09.04*** join/#openjtag odoc (i=odoc@is.borntobooze.de)
10:28.02*** join/#openjtag vmaster_ (i=vmaster@p549B6879.dip.t-dialin.net)
12:54.20*** join/#openjtag bullet (n=bullet@203.56.76.83.cust.bluewin.ch)
13:40.27*** join/#openjtag prpplague (n=billybob@72.22.136.108)
15:43.44*** join/#openjtag ByronT (i=ByronT@nslu2-linux/ByronT)
17:53.05*** part/#openjtag odoc (i=odoc@is.borntobooze.de)
18:25.34*** join/#openjtag ka6sox-zzzz (n=ka6sox@netblock-66-159-209-52.dslextreme.com)
19:18.21*** join/#openjtag JerseyCow (i=snork@01-186.015.popsite.net)
22:42.59*** join/#openjtag bullet (n=bullet@203.56.76.83.cust.bluewin.ch)
23:22.33*** join/#openjtag Tiersten (i=tman@nslu2-linux/Tiersten)
23:28.55*** join/#openjtag ByronT_ (n=byron-po@nslu2-linux/ByronT)

Generated by irclog2html.pl by Jeff Waugh - find it at freshmeat.net! Modified by Tim Riker to work with blootbot logs, split per channel, etc.