synthesis

Resources for logic synthesis and verification

孤者浪人 提交于 2020-07-16 02:15:06
问题 I am currently working on logic synthesis- given a high level description of a hardware I wish to convert it into a circuit of gates,flip flops etc. I am not very much familiar with the theory. I searched the internet, but most of them refer to online book stores. Could someone please refer me to any good tutorials on the net? Any help regarding it would be appreciated. 回答1: A flow primer can be found here: Advanced ASIC Chip Synthesis Using Synopsys® Design Compiler® Physical Compiler® and

using values instead of pointers as function arguments

我们两清 提交于 2020-01-04 04:07:06
问题 I have this function "cost_compare" that I would like to offload on FPGA for some experimental purposes. This function, how it is called and its arguments are as follows. The synthesis tool doesn't accept double pointers as arguments for HW functions (in fact it is very picky about using pointers especially to data structures). How do I get rid of the pointers in the function argument list? In other words, how do I convert pointers in this example to values? How does this possible solution

How to fix Xilinx ISE warning about sensitivity list?

▼魔方 西西 提交于 2019-12-24 13:53:02
问题 I synthesized my design with Xilinx ISE 13.1. Target device is Virtex 5. Then I encountered this warning: WARNING:Xst:819 - "F:/FRONT-END/h264/inter/src/eei/eei_mvd.vhd" line 539: One or more signals are missing in the process sensitivity list. To enable synthesis of FPGA/CPLD hardware, XST will assume that all necessary signals are present in the sensitivity list. Please note that the result of the synthesis may differ from the initial design specification. The missing signals are: <mvd_l0<3

Difference in initializing a state machine between a simulator and synthesizer

只愿长相守 提交于 2019-12-24 06:40:36
问题 My question is regarding the first state used in a synthesized state machine. I'm working with a Lattice iCE40 FPGA, the EDA Playground for simulation and Lattice's Diamond Programmer for synthesizing. In the following example I am generating a series of signals (the example only shows the lines referring to the state machine). This works fine in simulation; i.e. the first case accessed is sm_init_lattice and the required signals are produced). However, the synthesized version goes straight

Seven Segment Multiplexing on Basys2

我的梦境 提交于 2019-12-22 17:47:08
问题 this is my first post so I hope I'm doing this correctly. I'm trying to output a "4 3 2 1" on a four digit seven segment display on a BASYS2 board. I have checked to make sure that 0 enables the signal and that I have the ports mapped correctly. I believe the error is within my multiplexing logic since I am only able to display a single digit. I'm new to Verilog (am used to C) and would appreciate any suggestions. Thanks `timescale 1ns / 1ps module main (clock, AN0, AN1, AN2, AN3, CA, CB, CC,

Why is rising edge preferred over falling edge

南笙酒味 提交于 2019-12-22 03:42:10
问题 Flip-Flops(,Registers ...) are usually triggered by a rising or falling edge. But mostly in code you see an if-clause which uses the rising edge triggering. In fact i never saw a code with falling edge. Why is that? Is it because naturally the programmers use rising edge, because they are used to, or is it because of some physical/analog law/fact, where the rising edge programming is faster/simpler/energy-efficient/... ? 回答1: As zennehoy says, it's convention - but one going back to when

How to NOT use while() loops in verilog (for synthesis)?

本小妞迷上赌 提交于 2019-12-20 03:10:09
问题 I've gotten in the habit of developing a lot testbenches and use for() and while() loops for testing purpose. Thats fine. The problem is that I've taken this habit over to coding for circuits which should be synthesizable. XST and others refuse to synthesize code (without additional modification to synthesis parameters) such as: while (num < test_number) begin . . . num = num+1; end This is bad coding style because to the synthesizer test_num is an int with value 2^32! or it sees it as

VHDL: Finding out/reporting bit width/length of integer (vs. std_logic_vector)?

被刻印的时光 ゝ 提交于 2019-12-19 19:36:50
问题 Say I need a signal to represent numbers from 0 to 5; obviously this needs 3 bits of std_logic to be represented ( i.e if MAXVAL=5, then bitwidth= { wcalc "floor(logtwo($MAXVAL))+1" } ). I'm aware I could do: SIGNAL myLogicVector : STD_LOGIC_VECTOR(2 downto 0) := 5; with which I'd explicitly specify an array of three std_logic 'bits', and set initial value; then I could use REPORT to print out the length (in this case, 3): report("Bit width of myLogicVector is "& integer'image(myLogicVector

Android Audio - Streaming sine-tone generator odd behaviour

情到浓时终转凉″ 提交于 2019-12-18 12:28:52
问题 first time poster here. I usually like to find the answer myself (be it through research or trial-and-error), but I'm stumped here. What I'm trying to do: I'm building a simple android audio synthesizer. Right now, I'm just playing a sine-tone in real time, with a slider in the UI that changes the tone's frequency as the user adjusts it. How I've built it: Basically, I have two threads - a worker thread and an output thread. The worker thread simply fills a buffer with the sine wave data

@property and @synthesize

一个人想着一个人 提交于 2019-12-17 13:54:38
问题 I'm very new to Objective C. (Two days now). When read about @synthesize , it seemed to overlap with my understanding @property (which I thought I understood) ... So, some details need to be ironed out in my mind ... it's bugging me. Please correct me if I'm wrong about differences of @property and @synthesize : If you declare a @property in your @interface , then you're telling the world that users can expect to use standard getters and setters for that property. Futhermore, XCode will make