wolfman 0 10 сентября, 2008 Опубликовано 10 сентября, 2008 · Жалоба Если не трудно переведите файлик на VHDL или Verilog. Пробовал HDL-транслятор, но потом трудно разобраться с тем, что он сгенерил. Собственно AHDL-ый файл: include "lpm_mux"; SUBDESIGN e_f_tx ( ftm : input ;-- Глобальная тактовая tdata_frm : input ;-- Данные tclk_frm : input ;-- 2048 fts_frm : input ;-- izv0 : input ;-- RAI tm_e_conf : input ;-- tm_tr_e[3..0] : input ;-- Sa set_mf_crc : input ;-- разрешение работы с CRC4 tdata : OUTPUT; ) -- модуль форрмирования данных для порта Е1 при включении не прозрачного режима и контроля КИ0 VARIABLE setr[3..0] : dff; trs[11..0] : dffe; set_tr :dff; form_e_dout : node; %form_e% d_tm[3..0] : dffe; set_mf : node; rebe[1..0], izv1, dem, tmt : node; %CRC% crca[3..0] : dffe; crcta[3..0] : dffe; t_cra,crta : node; BEGIN setr0.clk = !ftm; setr1.clk = ftm; setr0.d = setr1.q # (tclk_frm & setr0.q); setr1.d = tclk_frm & !setr0.q; setr2.clk = !ftm; setr3.clk = ftm; setr2.d = setr3.q # (!tclk_frm & setr2.q); setr3.d = !tclk_frm & !setr2.q; -- setr1 --- определяет фронт, активен по фронту ftm -- setr3 --- определяет спад, активен по фронту ftm trs[11..0].clk = ftm; trs[11..0].d = trs[11..0].q + 1; trs[11..0].ena = setr1.q; trs[7..0].clrn = !set_tr.q; set_tr.clk = ftm; set_tr.d = fts_frm & setr3.q; form_e_dout = (tdata_frm & (!((trs[7..3].q==16)&set_mf)&!(trs[7..3].q==0)) # %cs% ((((crta#!set_mf_crc)&(trs[2..0].q==0))#(trs[2..0].q==3)#(trs[2..0].q==4)#(trs[2..0].q==6)#(trs[2. .0].q==7))&(trs[8..3].q==0)) # %cs CRC%((((trs[11..9].q==2)#(trs[11..9].q==4)#(trs[11..9].q==5)#(!rebe0&(trs[11..9].q==6))#(!rebe1&(trs[11..9].q==7))#!(trs[2..0]==0)#!set_mf_crc)&!(!izv0&(trs[2..0].q==2))&(tmt#!trs2.q))&(trs[8..3].q==32)) # %cs em% (((((trs[2..0].q==4)#(izv1&(trs[2..0].q==5))#(trs[2..0].q==6)#(trs[2..0].q==7))&(trs[11..3].q==16))#(dem&(trs[7..3].q==16)&!(trs[11..3].q==16))) & set_mf)); set_mf = gnd; rebe[1..0] = gnd; izv1 = gnd; dem = vcc; %TM% d_tm[3..0].clk = ftm; d_tm[3..0].d = tm_tr_e[3..0]; d_tm[3..0].ena = setr1.q & (trs[8..0].q==0); tmt = lpm_mux (.data[][]=d_tm[3..0].q,.sel[]=trs[1..0].q) WITH (LPM_WIDTH=1, LPM_SIZE=4, LPM_WIDTHS=2) RETURNS (.result[]); % crc - 4 % crca[].d = (t_cra $ crca0.q,(t_cra$crca0.q)$crca3.q,crca2.q,crca1.q) & !(trs[10..0].q==0); crca[].clk = ftm; crca[].ena = setr3.q; t_cra = form_e_dout & !(trs[8..0].q==0); crcta[].d = crca[].q; crcta[].clk = ftm; crcta[].ena = setr1.q & (trs[10..0].q==2047); crta = lpm_mux (.data[][]=crcta[].q, .sel[]=trs[10..9].q) WITH (LPM_WIDTH=1, LPM_SIZE=4, LPM_WIDTHS=2) RETURNS (.result[]); -- обработка выходной информации по CRC4 с передачей остатка от деления tdata = (form_e_dout & tm_e_conf) # (tdata_frm & !tm_e_conf); END; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 10 сентября, 2008 Опубликовано 10 сентября, 2008 · Жалоба Может расскажите, что Вам нужно и проще будет заново написать на необходимом Вам языке, чем разбираться в программе :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
wolfman 0 10 сентября, 2008 Опубликовано 10 сентября, 2008 · Жалоба Данный файл формирует Е1 поток, я пробовал забацать свое, в симуляторе работает на ура, а в железке не работает. Вобще мне нужно Ethernet засунуть в Е1, используя GFP, VCAT и LCAS. GFP и VCAT я сделал, осталось их проверить. Мне дали железку, в которой проект полностью сделан на AHDL, поскольку время поджимает (как всегда все срочно) рекомендовано использовать готовые блоки из проекта на AHDL. Вот я и хотел бы AHDL блоки перекинуть в VHDL или Verilog, ибо возможно потребуется вместо альтеры ставить ксайлинкс. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 10 сентября, 2008 Опубликовано 10 сентября, 2008 · Жалоба Данный файл формирует Е1 поток, я пробовал забацать свое, в симуляторе работает на ура, а в железке не работает. http://www.opencores.org/projects.cgi/web/...framer/overview Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
wolfman 0 10 сентября, 2008 Опубликовано 10 сентября, 2008 · Жалоба Maverick там нет файлов. как я понимаю проект в процессе. А здесь готовый проект, но на AHDL. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 10 сентября, 2008 Опубликовано 10 сентября, 2008 · Жалоба Maverick там нет файлов. как я понимаю проект в процессе. А здесь готовый проект, но на AHDL. А это что http://www.opencores.org/pdownloads.cgi/li...1framerdeframer Если срочно нужно попросите и Вам скачают, извините, но у меня Login на www.opencores.org нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
wolfman 0 10 сентября, 2008 Опубликовано 10 сентября, 2008 · Жалоба Maverick спасибо Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 10 сентября, 2008 Опубликовано 10 сентября, 2008 · Жалоба Maverick спасибо Посмотри тут http://www.thorsten-gaertner.de/vhdl/vhdl.htm http://xgoogle.xilinx.com/search?getfields...mp;lang2search= Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
wolfman 0 10 сентября, 2008 Опубликовано 10 сентября, 2008 · Жалоба Посмотри тут http://www.thorsten-gaertner.de/vhdl/vhdl.htm Это я уже нашел. Спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
LV26 0 12 сентября, 2008 Опубликовано 12 сентября, 2008 · Жалоба Есть такая штука - XPORT "You can use the HDL Converter process to convert ABEL or AHDL designs to VHDL or Verilog. In order to use ABEL or AHDL designs as top-level HDL designs, you must first convert the designs." См. Help в Xilinx ISE Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться