+ Post New Thread
Results 1 to 9 of 9

12th April 2019, 14:18 #1
 Join Date
 Apr 2019
 Posts
 8
 Helped
 0 / 0
 Points
 49
 Level
 1
Design to state position of first one from lsb every clock for parallel data coming
Can you please provide a design whose output will state the location of the first '1' from the LSB for an incoming parallel bit stream every clock?

Advertisment

12th April 2019, 14:34 #2
 Join Date
 Apr 2016
 Posts
 1,646
 Helped
 289 / 289
 Points
 7,817
 Level
 21
Re: Design to state position of first one from lsb every clock for parallel data comi
Is this a homework?
Really, I am not Sam.

12th April 2019, 14:36 #3
 Join Date
 Apr 2019
 Posts
 8
 Helped
 0 / 0
 Points
 49
 Level
 1

Advertisment

12th April 2019, 16:16 #4
 Join Date
 Sep 2013
 Location
 USA
 Posts
 6,973
 Helped
 1660 / 1660
 Points
 30,252
 Level
 42
Re: Design to state position of first one from lsb every clock for parallel data comi
You seem to have a misconception of what this forum is about. Members will help you with answering questions you may have on a variety of electronics related topics. They will assist you in resolving problems you may have in code or concepts. What members are unlikely to help with is: Doing your work for you.
You have an assignment or a need to have this circuit then do one or more of the following:
a) design it yourself
b) hire someone to design it, if you are not capable of designing such a circuit
c) try to design it and ask questions on the forum (showing what you have done) about any problems with your circuit that you can't figure out how to fix.
d) search the internet for your answer
Of the various options you will learn the most by doing either a or c.

Advertisment

12th April 2019, 22:18 #5
 Join Date
 Jul 2010
 Location
 Sweden
 Posts
 882
 Helped
 353 / 353
 Points
 6,802
 Level
 19

14th April 2019, 08:44 #6
 Join Date
 Feb 2015
 Posts
 972
 Helped
 278 / 278
 Points
 5,923
 Level
 18
Re: Design to state position of first one from lsb every clock for parallel data comi
There are 23 ways to code this. The obvious is a for loop from msb to lsb. This actually works when the synthesis tool understands and implements this in a good way. The fancy way uses "bitscan" with (x) & (x). This expression returns a onehot vector with the lowest 1 being the only bit set. The third method is manually generating the logic for a priority encoder.
There is also a priority encoder implementation that takes a 1hot vector and does the andor mapreduce with 10101010, 11001100, 11110000, etc...

14th April 2019, 11:49 #7
 Join Date
 Apr 2019
 Posts
 8
 Helped
 0 / 0
 Points
 49
 Level
 1
Re: Design to state position of first one from lsb every clock for parallel data comi

14th April 2019, 12:16 #8
 Join Date
 Jan 2008
 Location
 Bochum, Germany
 Posts
 44,262
 Helped
 13466 / 13466
 Points
 254,022
 Level
 100
Re: Design to state position of first one from lsb every clock for parallel data comi
What is x and what is x?
In my view, a behavioral description of the intended logic, typically using a for loop is a straightforward approach to synthesize it, as long as you don't have additional requirements, e.g. implementing pipelining or enforcing a specific hardware implementation like using carry chains to speed up the design.
Some synthesis tools have difficulties to implement nonarithmetic problems like priority encoder optimally following a behavioral description, but they are always able to implement it correctly.

Advertisment

15th April 2019, 18:53 #9
 Join Date
 Feb 2014
 Posts
 98
 Helped
 3 / 3
 Points
 1,380
 Level
 8
Re: Design to state position of first one from lsb every clock for parallel data comi
Code:for (i=0; i<WIDTH, i=i+1) begin if (input[i]) begin position = i; break; end end
1 members found this post helpful.
+ Post New Thread
Please login