blackfin 14 11 июля, 2015 Опубликовано 11 июля, 2015 · Жалоба :) верно сказано. Ага. Осталось провести верные параллели.. Вот если в процессе разработки лазерного дальномера вы удосужились прочитать пару-тройку серьезных учебников по радиолокации вообще и по лазерной локации в частности, то польза от такой разработки несомненно есть. Если же эти учебники не изучены "от корки и до корки", то эта ваша разработка лазерного дальномера и есть "пустая забава".. Как-то так.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dde29 0 11 июля, 2015 Опубликовано 11 июля, 2015 · Жалоба http://kit-e.ru/assets/files/pdf/2011_12_36.pdf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lmx2315 2 11 июля, 2015 Опубликовано 11 июля, 2015 · Жалоба Как-то так.. ..хотите сказать, что если сделать лазерный дальномер не читая книжек про него - то пользы не будет? з.ы. бедные изобретатели лазерных дальномеров и радиолокации в общем. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bugdesigner 0 11 июля, 2015 Опубликовано 11 июля, 2015 · Жалоба Теперь совсем все запуталась. Не пойму смысла генерации синуса. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SergeyVas 0 13 июля, 2015 Опубликовано 13 июля, 2015 · Жалоба Да вы правы нет смысла получать синус из зашумленного сигнала. Шум немного снизил теперь меньше 1 мкс, но результат по абсолютной точности не очень. Проблеме в алгоритме измерения фазы (фазовый детектор). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SergeyVas 0 17 июля, 2015 Опубликовано 17 июля, 2015 · Жалоба В квартусе мегавизарт есть элементы NCO Cordic их можно добавить в проект ошибок нет а какая у них лицензия может час поработает и перестанет )) что то найти не смог. Квартус у меня web pack 13.1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 17 июля, 2015 Опубликовано 17 июля, 2015 · Жалоба обычно если она платная и лимитированная об этом большими буквами сообщают. SIN и по таблице можно, только какой смысл? переводя 2 ваших квадратных сигнала в синус, вы не добавляете информации в систему, вы ее только преобразовываете. Потому и получить что-то дополнительное таким образом вы не сможете. если бы вы модулировали лазер в синус, а потом цифровали бы его на обратному пути, то вместо 0-1 вы бы получили гораздо больше уровней, и это имело бы смысл, а так... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SergeyVas 0 17 июля, 2015 Опубликовано 17 июля, 2015 · Жалоба Расстояние будет измерять это уже почти сделал )). Это просто мысль возникла. Луч все равно модулируется можно попробовать канал связи пустить параллельно измерению расстояния на световозвращаюшую пленку наклеить жк пленку или световозвращающую пленку наклеить на пьезокерамику. И рядом с пленкой поставить фотодиод. получиться измеритель и канал связи. Удобно будет управлять механизмами на расстоянии. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EvgenyNik 0 17 июля, 2015 Опубликовано 17 июля, 2015 · Жалоба переводя 2 ваших квадратных сигнала в синус, вы не добавляете информации в систему, вы ее только преобразовываете. Потому и получить что-то дополнительное таким образом вы не сможете.Более того, меандр уже содержит синус, как основную гармонику, и если уж очень хочется, то преобразование реализуется просто фильтрацией высших гармоник. Чем хорош подлинный аналоговый синус - тем, что при оцифровке совокупность из любых его трёх последовательных выборок несёт информацию о частоте и фазе. В данном случае интересна именно фаза. Чем плох цифровой синус, полученный (любым способом) из дискретного сигнала - тем, что даже небольшие гистерезис во входном преобразователе, джиттер и т.п. существенно сказываются на определении фазы на конкретном периоде. А поскольку у меандра весовых коэффициентов амплитуды всего два: +1 и -1 (ну или 1 и 0, если угодно), то даже перемножение на sin, cos-коэффициенты при преобразовании Фурье не дают такой же степени точности, как при подобной же обработке синусоидального сигнала. Даже если мы отфильтруем меандр до чистой синусоиды, то параметры этой синусоиды вберут в себя "огрехи" меандра и по сути ничего не изменится. Раз уж имеем дело сразу с дискретным сигналом, то и обрабатывать его логично как дискретный сигнал, а потом данные усреднять. ИМХО всё, конечно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Мур 1 13 марта, 2017 Опубликовано 13 марта, 2017 · Жалоба ...Ну а если для тестбенча?... Сам зашумлю уже генератором случайных чисел. У кого в загашнике есть блочок для теста?(не для синтеза) Хотя бы 12 разрядов... Да и на 8 соглашусь! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
blackfin 14 13 марта, 2017 Опубликовано 13 марта, 2017 · Жалоба Для тестбенча можно $sin(x), $cos(x). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 13 марта, 2017 Опубликовано 13 марта, 2017 · Жалоба вот например можно и для синтеза -- Module Name: sine_table - Behavioral -- Description: A lookup table with interpolation for sin(x) function -- -- To help with the coding, this actually returns sin(x+2*pi/8192) -- subtract 0x70 from 'pahse' to keep the zero crossing at zero. ---------------------------------------------------------------------------------- library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.NUMERIC_STD.ALL; entity sine_table is Port ( clk : in STD_LOGIC; phase : in STD_LOGIC_VECTOR (17 downto 0); sine : out STD_LOGIC_VECTOR (19 downto 0)); end sine_table; architecture Behavioral of sine_table is signal sine_sum : unsigned(9+phase'high downto 0) := (others => '0'); signal sine_mult_1 : unsigned(9+phase'high downto 0) := (others => '0'); signal frac_1 : unsigned(phase'high-11 downto 0) := (others => '0'); signal sine_1 : unsigned(19 downto 0) := (others => '0'); signal index_1 : unsigned(11 downto 0) := (others => '0'); signal quad_1 : unsigned( 1 downto 0) := (others => '0'); signal entry_1 : unsigned( 9 downto 0) := (others => '0'); signal sine_mult_2 : unsigned(9+phase'high downto 0) := (others => '0'); signal frac_2 : unsigned(phase'high-11 downto 0) := (others => '0'); signal sine_2 : unsigned(19 downto 0) := (others => '0'); signal quad_2 : unsigned(1 downto 0) := (others => '0'); signal entry_2 : unsigned(9 downto 0) := (others => '0'); signal index_2 : unsigned(11 downto 0) := (others => '0'); signal frac : unsigned(phase'high-12 downto 0); constant frac_max : unsigned(phase'high-11 downto 0) := (phase'high-11 => '1', others => '0'); constant table_max : unsigned(9 downto 0) := (others => '1'); constant midrange : unsigned(19 downto 0) := x"80000"; type a_mem is array (0 to 1023) of unsigned (19 downto 0); signal mem : a_mem := ( x"000C9", x"0025B", x"003ED", x"0057F", x"00711", x"008A3", x"00A35", x"00BC7", x"00D59", x"00EEC", x"0107E", x"01210", x"013A2", x"01534", x"016C6", x"01858", x"019EA", x"01B7C", x"01D0E", x"01EA0", x"02032", x"021C4", x"02355", x"024E7", x"02679", x"0280B", x"0299D", x"02B2F", x"02CC0", x"02E52", x"02FE4", x"03175", x"03307", x"03499", x"0362A", x"037BC", x"0394D", x"03ADF", x"03C70", x"03E02", x"03F93", x"04124", x"042B6", x"04447", x"045D8", x"04769", x"048FA", x"04A8B", x"04C1C", x"04DAD", x"04F3E", x"050CF", x"05260", x"053F1", x"05582", x"05712", x"058A3", x"05A34", x"05BC4", x"05D55", x"05EE5", x"06075", x"06206", x"06396", x"06526", x"066B6", x"06846", x"069D6", x"06B66", x"06CF6", x"06E86", x"07016", x"071A5", x"07335", x"074C5", x"07654", x"077E3", x"07973", x"07B02", x"07C91", x"07E20", x"07FAF", x"0813E", x"082CD", x"0845C", x"085EB", x"08779", x"08908", x"08A96", x"08C25", x"08DB3", x"08F41", x"090CF", x"0925D", x"093EB", x"09579", x"09707", x"09894", x"09A22", x"09BB0", x"09D3D", x"09ECA", x"0A057", x"0A1E5", x"0A372", x"0A4FF", x"0A68B", x"0A818", x"0A9A5", x"0AB31", x"0ACBE", x"0AE4A", x"0AFD6", x"0B162", x"0B2EE", x"0B47A", x"0B606", x"0B792", x"0B91D", x"0BAA9", x"0BC34", x"0BDBF", x"0BF4A", x"0C0D5", x"0C260", x"0C3EB", x"0C575", x"0C700", x"0C88A", x"0CA15", x"0CB9F", x"0CD29", x"0CEB3", x"0D03C", x"0D1C6", x"0D350", x"0D4D9", x"0D662", x"0D7EC", x"0D975", x"0DAFD", x"0DC86", x"0DE0F", x"0DF97", x"0E120", x"0E2A8", x"0E430", x"0E5B8", x"0E740", x"0E8C7", x"0EA4F", x"0EBD6", x"0ED5D", x"0EEE5", x"0F06C", x"0F1F2", x"0F379", x"0F500", x"0F686", x"0F80C", x"0F992", x"0FB18", x"0FC9E", x"0FE24", x"0FFA9", x"1012E", x"102B3", x"10438", x"105BD", x"10742", x"108C6", x"10A4B", x"10BCF", x"10D53", x"10ED7", x"1105B", x"111DE", x"11362", x"114E5", x"11668", x"117EB", x"1196E", x"11AF0", x"11C73", x"11DF5", x"11F77", x"120F9", x"1227A", x"123FC", x"1257D", x"126FE", x"1287F", x"12A00", x"12B81", x"12D01", x"12E81", x"13002", x"13181", x"13301", x"13481", x"13600", x"1377F", x"138FE", x"13A7D", x"13BFC", x"13D7A", x"13EF8", x"14076", x"141F4", x"14372", x"144EF", x"1466C", x"147E9", x"14966", x"14AE3", x"14C5F", x"14DDC", x"14F58", x"150D3", x"1524F", x"153CB", x"15546", x"156C1", x"1583C", x"159B6", x"15B31", x"15CAB", x"15E25", x"15F9F", x"16118", x"16292", x"1640B", x"16584", x"166FC", x"16875", x"169ED", x"16B65", x"16CDD", x"16E55", x"16FCC", x"17143", x"172BA", x"17431", x"175A7", x"1771E", x"17894", x"17A0A", x"17B7F", x"17CF5", x"17E6A", x"17FDF", x"18153", x"182C8", x"1843C", x"185B0", x"18724", x"18897", x"18A0A", x"18B7E", x"18CF0", x"18E63", x"18FD5", x"19147", x"192B9", x"1942B", x"1959C", x"1970D", x"1987E", x"199EF", x"19B5F", x"19CCF", x"19E3F", x"19FAF", x"1A11E", x"1A28D", x"1A3FC", x"1A56B", x"1A6D9", x"1A847", x"1A9B5", x"1AB23", x"1AC90", x"1ADFD", x"1AF6A", x"1B0D6", x"1B243", x"1B3AF", x"1B51B", x"1B686", x"1B7F1", x"1B95C", x"1BAC7", x"1BC31", x"1BD9C", x"1BF06", x"1C06F", x"1C1D9", x"1C342", x"1C4AA", x"1C613", x"1C77B", x"1C8E3", x"1CA4B", x"1CBB3", x"1CD1A", x"1CE81", x"1CFE7", x"1D14E", x"1D2B4", x"1D419", x"1D57F", x"1D6E4", x"1D849", x"1D9AE", x"1DB12", x"1DC76", x"1DDDA", x"1DF3E", x"1E0A1", x"1E204", x"1E366", x"1E4C9", x"1E62B", x"1E78D", x"1E8EE", x"1EA4F", x"1EBB0", x"1ED11", x"1EE71", x"1EFD1", x"1F131", x"1F290", x"1F3EF", x"1F54E", x"1F6AC", x"1F80B", x"1F968", x"1FAC6", x"1FC23", x"1FD80", x"1FEDD", x"20039", x"20195", x"202F1", x"2044C", x"205A8", x"20702", x"2085D", x"209B7", x"20B11", x"20C6A", x"20DC4", x"20F1D", x"21075", x"211CD", x"21325", x"2147D", x"215D4", x"2172B", x"21882", x"219D8", x"21B2E", x"21C84", x"21DDA", x"21F2F", x"22083", x"221D8", x"2232C", x"2247F", x"225D3", x"22726", x"22879", x"229CB", x"22B1D", x"22C6F", x"22DC0", x"22F11", x"23062", x"231B3", x"23303", x"23452", x"235A2", x"236F1", x"2383F", x"2398E", x"23ADC", x"23C29", x"23D77", x"23EC4", x"24010", x"2415D", x"242A9", x"243F4", x"2453F", x"2468A", x"247D5", x"2491F", x"24A69", x"24BB2", x"24CFB", x"24E44", x"24F8D", x"250D5", x"2521C", x"25364", x"254AB", x"255F1", x"25738", x"2587E", x"259C3", x"25B08", x"25C4D", x"25D92", x"25ED6", x"26019", x"2615D", x"262A0", x"263E2", x"26525", x"26666", x"267A8", x"268E9", x"26A2A", x"26B6A", x"26CAA", x"26DEA", x"26F29", x"27068", x"271A7", x"272E5", x"27423", x"27560", x"2769D", x"277DA", x"27916", x"27A52", x"27B8D", x"27CC8", x"27E03", x"27F3D", x"28077", x"281B1", x"282EA", x"28423", x"2855B", x"28693", x"287CB", x"28902", x"28A39", x"28B6F", x"28CA5", x"28DDB", x"28F10", x"29045", x"2917A", x"292AE", x"293E2", x"29515", x"29648", x"2977A", x"298AC", x"299DE", x"29B0F", x"29C40", x"29D71", x"29EA1", x"29FD0", x"2A100", x"2A22F", x"2A35D", x"2A48B", x"2A5B9", x"2A6E6", x"2A813", x"2A93F", x"2AA6B", x"2AB97", x"2ACC2", x"2ADED", x"2AF17", x"2B041", x"2B16B", x"2B294", x"2B3BD", x"2B4E5", x"2B60D", x"2B734", x"2B85B", x"2B982", x"2BAA8", x"2BBCE", x"2BCF3", x"2BE18", x"2BF3D", x"2C061", x"2C184", x"2C2A8", x"2C3CA", x"2C4ED", x"2C60F", x"2C730", x"2C851", x"2C972", x"2CA92", x"2CBB2", x"2CCD2", x"2CDF0", x"2CF0F", x"2D02D", x"2D14B", x"2D268", x"2D385", x"2D4A1", x"2D5BD", x"2D6D8", x"2D7F3", x"2D90E", x"2DA28", x"2DB42", x"2DC5B", x"2DD74", x"2DE8C", x"2DFA4", x"2E0BC", x"2E1D3", x"2E2EA", x"2E400", x"2E515", x"2E62B", x"2E740", x"2E854", x"2E968", x"2EA7B", x"2EB8E", x"2ECA1", x"2EDB3", x"2EEC5", x"2EFD6", x"2F0E7", x"2F1F7", x"2F307", x"2F416", x"2F525", x"2F634", x"2F742", x"2F850", x"2F95D", x"2FA69", x"2FB76", x"2FC81", x"2FD8D", x"2FE97", x"2FFA2", x"300AC", x"301B5", x"302BE", x"303C7", x"304CF", x"305D6", x"306DD", x"307E4", x"308EA", x"309F0", x"30AF5", x"30BFA", x"30CFE", x"30E02", x"30F06", x"31009", x"3110B", x"3120D", x"3130E", x"3140F", x"31510", x"31610", x"31710", x"3180F", x"3190D", x"31A0B", x"31B09", x"31C06", x"31D03", x"31DFF", x"31EFB", x"31FF6", x"320F1", x"321EB", x"322E5", x"323DF", x"324D7", x"325D0", x"326C8", x"327BF", x"328B6", x"329AC", x"32AA2", x"32B98", x"32C8D", x"32D81", x"32E75", x"32F69", x"3305C", x"3314E", x"33240", x"33332", x"33423", x"33513", x"33603", x"336F3", x"337E2", x"338D0", x"339BF", x"33AAC", x"33B99", x"33C86", x"33D72", x"33E5D", x"33F48", x"34033", x"3411D", x"34207", x"342F0", x"343D8", x"344C0", x"345A8", x"3468F", x"34775", x"3485B", x"34941", x"34A26", x"34B0A", x"34BEE", x"34CD2", x"34DB5", x"34E97", x"34F79", x"3505B", x"3513C", x"3521C", x"352FC", x"353DC", x"354BA", x"35599", x"35677", x"35754", x"35831", x"3590D", x"359E9", x"35AC4", x"35B9F", x"35C79", x"35D53", x"35E2C", x"35F05", x"35FDD", x"360B5", x"3618C", x"36262", x"36339", x"3640E", x"364E3", x"365B8", x"3668C", x"3675F", x"36832", x"36905", x"369D6", x"36AA8", x"36B79", x"36C49", x"36D19", x"36DE8", x"36EB7", x"36F85", x"37053", x"37120", x"371EC", x"372B8", x"37384", x"3744F", x"3751A", x"375E4", x"376AD", x"37776", x"3783E", x"37906", x"379CD", x"37A94", x"37B5A", x"37C20", x"37CE5", x"37DAA", x"37E6E", x"37F31", x"37FF4", x"380B7", x"38178", x"3823A", x"382FB", x"383BB", x"3847B", x"3853A", x"385F8", x"386B7", x"38774", x"38831", x"388EE", x"389AA", x"38A65", x"38B20", x"38BDA", x"38C94", x"38D4D", x"38E06", x"38EBE", x"38F75", x"3902C", x"390E3", x"39199", x"3924E", x"39303", x"393B7", x"3946B", x"3951E", x"395D0", x"39683", x"39734", x"397E5", x"39895", x"39945", x"399F4", x"39AA3", x"39B51", x"39BFF", x"39CAC", x"39D58", x"39E04", x"39EB0", x"39F5B", x"3A005", x"3A0AE", x"3A158", x"3A200", x"3A2A8", x"3A350", x"3A3F7", x"3A49D", x"3A543", x"3A5E8", x"3A68C", x"3A731", x"3A7D4", x"3A877", x"3A919", x"3A9BB", x"3AA5D", x"3AAFD", x"3AB9D", x"3AC3D", x"3ACDC", x"3AD7A", x"3AE18", x"3AEB6", x"3AF52", x"3AFEE", x"3B08A", x"3B125", x"3B1C0", x"3B259", x"3B2F3", x"3B38B", x"3B424", x"3B4BB", x"3B552", x"3B5E9", x"3B67F", x"3B714", x"3B7A9", x"3B83D", x"3B8D0", x"3B963", x"3B9F6", x"3BA88", x"3BB19", x"3BBAA", x"3BC3A", x"3BCCA", x"3BD59", x"3BDE7", x"3BE75", x"3BF02", x"3BF8F", x"3C01B", x"3C0A6", x"3C131", x"3C1BC", x"3C245", x"3C2CF", x"3C357", x"3C3DF", x"3C467", x"3C4EE", x"3C574", x"3C5FA", x"3C67F", x"3C703", x"3C787", x"3C80B", x"3C88E", x"3C910", x"3C992", x"3CA13", x"3CA93", x"3CB13", x"3CB92", x"3CC11", x"3CC8F", x"3CD0D", x"3CD8A", x"3CE06", x"3CE82", x"3CEFD", x"3CF78", x"3CFF2", x"3D06B", x"3D0E4", x"3D15C", x"3D1D4", x"3D24B", x"3D2C2", x"3D337", x"3D3AD", x"3D421", x"3D496", x"3D509", x"3D57C", x"3D5EE", x"3D660", x"3D6D1", x"3D742", x"3D7B2", x"3D821", x"3D890", x"3D8FE", x"3D96C", x"3D9D9", x"3DA46", x"3DAB1", x"3DB1D", x"3DB87", x"3DBF1", x"3DC5B", x"3DCC4", x"3DD2C", x"3DD94", x"3DDFB", x"3DE61", x"3DEC7", x"3DF2C", x"3DF91", x"3DFF5", x"3E059", x"3E0BC", x"3E11E", x"3E180", x"3E1E1", x"3E241", x"3E2A1", x"3E301", x"3E35F", x"3E3BD", x"3E41B", x"3E478", x"3E4D4", x"3E530", x"3E58B", x"3E5E5", x"3E63F", x"3E699", x"3E6F1", x"3E749", x"3E7A1", x"3E7F8", x"3E84E", x"3E8A4", x"3E8F9", x"3E94D", x"3E9A1", x"3E9F5", x"3EA47", x"3EA99", x"3EAEB", x"3EB3C", x"3EB8C", x"3EBDC", x"3EC2B", x"3EC79", x"3ECC7", x"3ED14", x"3ED61", x"3EDAD", x"3EDF8", x"3EE43", x"3EE8D", x"3EED7", x"3EF20", x"3EF68", x"3EFB0", x"3EFF7", x"3F03E", x"3F084", x"3F0C9", x"3F10E", x"3F152", x"3F196", x"3F1D9", x"3F21B", x"3F25D", x"3F29E", x"3F2DE", x"3F31E", x"3F35D", x"3F39C", x"3F3DA", x"3F417", x"3F454", x"3F491", x"3F4CC", x"3F507", x"3F542", x"3F57B", x"3F5B4", x"3F5ED", x"3F625", x"3F65C", x"3F693", x"3F6C9", x"3F6FF", x"3F734", x"3F768", x"3F79C", x"3F7CF", x"3F801", x"3F833", x"3F864", x"3F895", x"3F8C5", x"3F8F4", x"3F923", x"3F951", x"3F97F", x"3F9AC", x"3F9D8", x"3FA04", x"3FA2F", x"3FA59", x"3FA83", x"3FAAC", x"3FAD5", x"3FAFD", x"3FB24", x"3FB4B", x"3FB71", x"3FB97", x"3FBBC", x"3FBE0", x"3FC04", x"3FC27", x"3FC4A", x"3FC6B", x"3FC8D", x"3FCAD", x"3FCCD", x"3FCED", x"3FD0C", x"3FD2A", x"3FD47", x"3FD64", x"3FD81", x"3FD9C", x"3FDB8", x"3FDD2", x"3FDEC", x"3FE05", x"3FE1E", x"3FE36", x"3FE4D", x"3FE64", x"3FE7A", x"3FE90", x"3FEA5", x"3FEB9", x"3FECD", x"3FEE0", x"3FEF3", x"3FF05", x"3FF16", x"3FF26", x"3FF36", x"3FF46", x"3FF55", x"3FF63", x"3FF70", x"3FF7D", x"3FF8A", x"3FF95", x"3FFA1", x"3FFAB", x"3FFB5", x"3FFBE", x"3FFC7", x"3FFCF", x"3FFD6", x"3FFDD", x"3FFE3", x"3FFE9", x"3FFEE", x"3FFF2", x"3FFF6", x"3FFF9", x"3FFFB", x"3FFFD", x"3FFFE", x"3FFFF" ); begin sine <= std_logic_vector(sine_sum(sine_sum'high-1 downto sine_sum'high-sine'high-1)); index_1 <= UNSIGNED(phase(phase'high downto phase'high-11)); index_2 <= UNSIGNED(phase(phase'high downto phase'high-11))+1; clk_proc: process(clk) begin if rising_edge(clk) then -- Sage 4 - sine_sum <= sine_mult_1 + sine_mult_2; -- Pipeline stage 3 - generate the final value sine_mult_1 <= sine_1 * frac_1; sine_mult_2 <= sine_2 * frac_2; -- Pipeline state 2 - look up the values in the table case quad_1 is when "00" => sine_1 <= midrange+mem(to_integer(entry_1)); when "01" => sine_1 <= midrange+mem(to_integer(entry_1)); when "10" => sine_1 <= midrange-mem(to_integer(entry_1)); when others => sine_1 <= midrange-mem(to_integer(entry_1)); end case; case quad_2 is when "00" => sine_2 <= midrange+mem(to_integer(entry_2)); when "01" => sine_2 <= midrange+mem(to_integer(entry_2)); when "10" => sine_2 <= midrange-mem(to_integer(entry_2)); when others => sine_2 <= midrange-mem(to_integer(entry_2)); end case; frac_1 <= frac_max - frac; frac_2 <= "0" & frac; -- Pipeline state 1 - break out the phase components into table indexes quad_1 <= index_1(11 downto 10); if index_1(10) = '0' then entry_1 <= index_1(9 downto 0); else entry_1 <= table_max - index_1(9 downto 0); end if; quad_2 <= index_2(11 downto 10); if index_2(10) = '0' then entry_2 <= index_2(9 downto 0); else entry_2 <= table_max - index_2(9 downto 0); end if; frac <= unsigned(phase(phase'high-12 downto 0)); end if; end process; end Behavioral; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Мур 1 14 марта, 2017 Опубликовано 14 марта, 2017 · Жалоба вот например можно и для синтеза Огромное спасибо! Это более чем.... Шикарно! ...только код с ходу не работает. Частота на выходе отсутствует. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Мур 1 14 марта, 2017 Опубликовано 14 марта, 2017 · Жалоба Так и не понял, чего не хватает для генерации?.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 27 14 марта, 2017 Опубликовано 14 марта, 2017 · Жалоба Приветствую! Так и не понял, чего не хватает для генерации?.... Умного контроллера управления и принятия решений ;) Это ж просто таблица! Для Вашей задачи к данной табличке нужен еще фазовый детектор, петлевой фильтр и аккумулятор фазы. Только при этом (при данной схеме) самой таблички sin/cos и не нужно будет. Так как разность фаз определяется исключительно входными импульсами. А точность измерения разности оных - входными шумами и полосой фильтра. Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться