|
Конвертер serial->8b parallel, Хочу сделать на CPLD от Альтеры |
|
|
|
Jan 23 2008, 10:16
|
Местный
  
Группа: Свой
Сообщений: 221
Регистрация: 26-12-07
Пользователь №: 33 639

|
Суть-соль: Необходимо сделать конвертер parallel<->serial Может быть до 4х входных serial каналов, и до 4х выходных. Тактирования 2. Одно для входных, другое для выходных каналов. Скорость вх/вых могут быть только кратны. Для serial интерфейса конвертор должен быть slave. Макс. скорость до 12.3Мбит в каждую сторону по каждому serial каналу. Параллельных интерфейсов 2, на вход и выход. Сервисные: строб выдачи, вход для подтверждения получения, вход для строба чтения, сигнал переполнения, вход для сброса сигнала переполнения. Примерно так: >InSCK >In1 >In2 >In3 >In4 <POut (8b) <RD >RDE <OVFOut >OVFOutRES ============== >PIn (8b) >WR >OutSCK <Out1 <Out2 <Out3 <Out4 <OVFIn >OVFInRES Вроде все... Это возможно вообще? Есть желание сделать на CPLD от Альтеры. Какой лучьше пойдет для этой цели? Если кто уже делал подобное, поделитесь пожалуйста.
|
|
|
|
|
 |
Ответов
|
Feb 1 2008, 14:56
|
Местный
  
Группа: Свой
Сообщений: 221
Регистрация: 26-12-07
Пользователь №: 33 639

|
Смотрю тут сорец один: Код ... reg bclk; reg [3:0]fd; ... initial begin fd=0;end ... always @(posedge clk) begin fd<=fd+1; if(fd==7) fd<=0; if(fd<4) bclk<=0; else bclk<=1; end И что-то никак не врубаю - как эта хрень работать будет? Заявленно, что clk=16.9344 MHz и что получится bck=1.4112 MHz (делим на 12) Я что-то не верю! И вообще, как-то через Ж... сделано. bclk не инитится. оно 0 будет? Понимаю так: (clk сначала остановлен) 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 :clk 0 0 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 0 0 :fd 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0:bclk Получается, что делится на 8 Честно говоря не очень ясно еще: при fd==7, в него одновременно пихается 0 и 8 (fd+1) fd<=fd+1 и if(fd==7) fd<=0 выполняются параллельно или последовательно? <= неблок. - значит вроде паралл. может так? fd установится в 7, и сразу сбросится в 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 clk 0 0 0 0 1 1 2 2 3 3 4 4 5 5 6 6 0 0 1 1 2 2 3 3 4 4 5 5 6 6 0 0 fd 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 bclk тогда делится на 7...
Сообщение отредактировал MAXvaLL - Feb 1 2008, 15:05
|
|
|
|
|
Feb 1 2008, 15:33
|
Гуру
     
Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847

|
Цитата(MAXvaLL @ Feb 1 2008, 17:56)  Смотрю тут сорец один: Код ... reg bclk; reg [3:0]fd; ... initial begin fd=0;end ... always @(posedge clk) begin fd<=fd+1; if(fd==7) fd<=0; if(fd<4) bclk<=0; else bclk<=1; end И что-то никак не врубаю - как эта хрень работать будет? Заявленно, что clk=16.9344 MHz и что получится bck=1.4112 MHz (делим на 12) Я что-то не верю! И правильно - будет делить на 7, и то не факт Цитата И вообще, как-то через Ж... сделано. Это точно Цитата bclk не инитится. оно 0 будет? Оно будет X до первого присваивания. В реальной железке будет чем то, неизвестно чем (скорее всего 0) Цитата Честно говоря не очень ясно еще: при fd==7, в него одновременно пихается 0 и 8 (fd+1) fd<=fd+1 и if(fd==7) fd<=0 выполняются параллельно или последовательно? <= неблок. - значит вроде паралл. Параллельно. Симулятор имеет право обругаться. Цитата может так? fd установится в 7, и сразу сбросится в 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 clk 0 0 0 0 1 1 2 2 3 3 4 4 5 5 6 6 0 0 1 1 2 2 3 3 4 4 5 5 6 6 0 0 fd 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 bclk тогда делится на 7...  Автор предполагал именно так, но более правильно было бы записать Код always @(posedge clk) begin if(fd==7) fd<=0; else fd<=fd+1; if(fd<4) bclk<=0; else bclk<=1; end
Сообщение отредактировал XVR - Feb 1 2008, 15:34
|
|
|
|
Сообщений в этой теме
MAXvaLL Конвертер serial->8b parallel Jan 23 2008, 10:16 XVR Цитата(MAXvaLL @ Jan 23 2008, 13:16) Суть... Jan 23 2008, 11:47 MAXvaLL Цитата(XVR @ Jan 23 2008, 14:47) Рекоменд... Jan 23 2008, 12:38 XVR Цитата(MAXvaLL @ Jan 23 2008, 15:38) И чт... Jan 23 2008, 13:52 maxfox2k во-первых если устройство единичное, то лучше взят... Jan 23 2008, 16:06 MAXvaLL Спасибо за ответы!
Извиняюсь что коряво объясн... Jan 23 2008, 20:05 XVR Цитата(MAXvaLL @ Jan 23 2008, 23:05) Спас... Jan 23 2008, 20:36  MAXvaLL Цитата(XVR @ Jan 23 2008, 23:36) Тут попо... Jan 24 2008, 20:24   XVR Цитата(MAXvaLL @ Jan 24 2008, 23:24) К од... Jan 25 2008, 07:13    MAXvaLL Цитата(XVR @ Jan 25 2008, 10:13) У CY7C68... Jan 26 2008, 11:05     XVR Цитата(MAXvaLL @ Jan 26 2008, 14:05) Да, ... Jan 26 2008, 11:51      MAXvaLL XVR, спасибо вам за помощь!
ЦитатаИтого, п... Jan 28 2008, 11:43       XVR Цитата(MAXvaLL @ Jan 28 2008, 14:43) XVR,... Jan 28 2008, 18:47        MAXvaLL У меня оказывается был старый даташит на CY. В кот... Jan 28 2008, 21:41         XVR Цитата(MAXvaLL @ Jan 29 2008, 00:41) SLCS... Jan 29 2008, 10:16          MAXvaLL Цитата(XVR @ Jan 29 2008, 13:16) Главное ... Jan 29 2008, 11:59           XVR Цитата(MAXvaLL @ Jan 29 2008, 14:59) Ну, ... Jan 29 2008, 15:09            MAXvaLL Цитата(XVR @ Jan 29 2008, 18:09) А что де... Jan 29 2008, 15:27             XVR Цитата(MAXvaLL @ Jan 29 2008, 18:27) Ниче... Jan 29 2008, 18:07              MAXvaLL Цитата(XVR @ Jan 29 2008, 21:07) Ну в общ... Jan 29 2008, 21:51               XVR Цитата(MAXvaLL @ Jan 30 2008, 00:51) А на... Jan 30 2008, 07:22 maxfox2k Цитата(MAXvaLL @ Jan 23 2008, 23:05) что-... Jan 23 2008, 23:21  XVR Цитата(maxfox2k @ Jan 24 2008, 02:21) есл... Jan 24 2008, 07:53 призрак Что мелочиться - пость возьмет чтото типа FLEX10K ... Jan 28 2008, 06:12 MAXvaLL Еще вопросец:
Есть разница на чем писать: AHDL/VHD... Jan 30 2008, 18:18 XVR Цитата(MAXvaLL @ Jan 30 2008, 21:18) Еще ... Jan 30 2008, 18:38  dvladim Цитата(XVR @ Jan 30 2008, 21:38) Verilog,... Jan 30 2008, 20:41   XVR Цитата(dvladim @ Jan 30 2008, 23:41) Не о... Jan 31 2008, 10:14  MAXvaLL Цитата(XVR @ Jan 30 2008, 21:38) Забыть, ... Jan 30 2008, 22:02   RHnd Проект не видел, но с верояностью 99% verilog/vhdl... Jan 31 2008, 07:23   khach Цитата(MAXvaLL @ Jan 31 2008, 01:02) Вида... Jan 31 2008, 08:15    MAXvaLL Цитата(khach @ Jan 31 2008, 11:15) Опишит... Jan 31 2008, 08:42 MAXvaLL Нашел I2S Interface core.
Но он на VHDL, а я уж вз... Jan 31 2008, 23:36 XVR Цитата(MAXvaLL @ Feb 1 2008, 02:36) Нашел... Feb 1 2008, 09:14  MAXvaLL Цитата(XVR @ Feb 1 2008, 12:14) Собственн... Feb 1 2008, 11:44   XVR Цитата(MAXvaLL @ Feb 1 2008, 14:44) Это п... Feb 1 2008, 12:59  MAXvaLL Цитата(XVR @ Feb 1 2008, 18:33) Автор пре... Feb 1 2008, 15:48 MAXvaLL Тут при реализации вопрос возник:
параллельная шин... Feb 3 2008, 12:32 XVR Цитата(MAXvaLL @ Feb 3 2008, 15:32) Тут п... Feb 3 2008, 15:58  MAXvaLL Цитата(XVR @ Feb 3 2008, 18:58) Поставить... Feb 3 2008, 20:04   XVR Цитата(MAXvaLL @ Feb 3 2008, 23:04) Это б... Feb 4 2008, 16:41    MAXvaLL Цитата(XVR @ Feb 4 2008, 19:41) IOBUF my_... Feb 4 2008, 18:19
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|