Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > VHDL > serial clock generation

Reply
Thread Tools

serial clock generation

 
 
vu
Guest
Posts: n/a
 
      08-21-2006
Hello,

I've just very recently started VHDL coding, and still unfamiliar with
the proper style of the language.

I am trying to create a serial interface that receives a serial clock
(seperate from system clock), and inverts this clock to make a transmit
clock. What would be the best method to do this? I would appreciate a
snippet of code if possible.

Thank you for your help. So far I have this:

========
-
-

-- into module
ser_clkr <= ser_clkr_i;
ser_clkr_q <= ser_clkr; -- previous val of clkr

--new serial clock to be generated from input of CLKR.
new_clk_gen: process(ser_clkr, ser_clkr_q)
begin
if (ser_clkr_q = '0' and ser_clkr_q = '1') then
ser_clkx <= not ser_clkx;
else
ser_clkx <= ser_clkx;
end process;

 
Reply With Quote
 
 
 
 
Jerrie85 Jerrie85 is offline
Junior Member
Join Date: Aug 2006
Posts: 7
 
      08-21-2006
why dont u just transmit_clk <= ~receive_serial_clock;
this is just straight inverter, combination logic
 
Reply With Quote
 
 
 
 
Benjamin Todd
Guest
Posts: n/a
 
      08-27-2006
IMHO I think you've got a bit of work to do... The grass roots of VHDL is
good synchronous design practice. Ok, of course it can be much more
complicated that that, but you should start with the idea that you have a
global system reset, and a global system clock, everything that happens in
your design is initialised with the reset, and synchronous to the clock.
every process can then be written as a flip-flop, with combinational logic
behind it.

To give you a head-start with what you wrote...

someprocess : process (clk, rst)
begin
if rst = '1' then
-- here you initialise your signals
elsif rising_edge (clk) then
-- here something happens every rising edge of the clock
end if;
end process;

Use this kind of structure to describe your circuit!

> if (ser_clkr_q = '0' and ser_clkr_q = '1') then


I'm sure you don't mean this!!

> ser_clkx <= not ser_clkx;
> else
> ser_clkx <= ser_clkx;


And this creates a latch... not good!

Go back to basics and consider what is good synchronous design...!!
A good question to start with is how would you make the circuit if you had a
drawer full of 7400s, not an FPGA/CPLD?
Good luck!
Ben


 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
clock generation by divide and reset J.Ram VHDL 2 02-06-2009 09:03 PM
Generation of 4.096MHz clock from 7.680MHz clock pankaj.goel VHDL 6 11-25-2008 11:51 AM
Enabling clock generation ALuPin VHDL 1 09-30-2004 09:43 AM
HTML Generation (Next Generation CGI) John W. Long Ruby 4 11-24-2003 04:24 AM
Are clock and divided clock synchronous? Valentin Tihomirov VHDL 11 10-28-2003 01:18 PM



Advertisments