Forum Discussion
Altera_Forum
Honored Contributor
16 years agoTiming Question
Hi everybody, I'm new to these forums.. the community seems helpful. Hopefully someone will have input on my question, and hopefully I can help others. So I'm working on an MAXPLUS7128 SLC84-1...
Altera_Forum
Honored Contributor
16 years agoWhen you want to synthesize a design with output ports that are changed in a clocked process, you can't directly assign out ports from the process. The synthesizer considers that the signal on the output port needs to be read back by the hardware in order to maintain its state during the clock cycle. There are two ways around this:
[list][*]declare the port as 'BUFFER' instead of 'OUT'. This is usually considered to be the bad solution (and I agree) because it makes things more complicated (to stay polite) when combining different components. 'BUFFER' is a kind of viral attribute that you need to propagate everywhere in your design when you start using it[*]use an internal signal. Connect that internal signal to the out port outside of the process, and only assign values to that internal signal inside the process[/list]Here is an example of the latter:ARCHITECTURE one OF adc IS
SIGNAL cs_buffer: STD_LOGIC;
BEGIN
cs <= cs_buffer;
PROCESS (clk_in)
VARIABLE count: INTEGER RANGE 0 to 21;
BEGIN
cs_buffer <= '1'