神器X-HDL3:VHDL、Veilog互转,已测试,相当强悍
如题。不用不知道,一用吓一跳。
点击此处下载 ourdev_537736.zip(文件大小:3.78M) (原文件名:X-HDL3.2.52.zip)
http://cache.amobbs.com/bbs_upload782111/files_27/ourdev_537737.png
(原文件名:抓图-1.png) 严重mark m一下,用到时再下 转过来的正确不? 关注 回复【3楼】asdasd
转过来的正确不?
-----------------------------------------------------------------------
我把群里的18b20转过来正确
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=1079713 软件我是早就有了,不过后来项目不用cpld了,就没有深入研究,没用上,mark一下 以后看VHDL的例程就方便了 MARK mark,以后学CPLD/FPGA会用到 mark 留名 mark mark mark 呵呵,支持 做个标记说不定哪天用到! 复杂代码效果如何? mark 小设计用它基本上没有问题,大的设计可要掂量掂量哦! 标记一下,收藏… 效率估计不会太高,不过有了它,最起码能让人踏实些,不至于看不懂另外一种语言 收藏了 以前用过 先标记,等以后。 NULL; 转换了就是begin 和end 用一个语言,能看懂另外一个语言是基本功啊…… 记号 记号。 记号!! 最近楼主放的资料很多啊,顶 回复【楼主位】tear086 .COM缺氧
-----------------------------------------------------------------------
谢谢共享 Mark Mark Mark 不知转换后效果如何,总觉得不踏实. MARK mark mark 必须顶~! 我太笨,找了个VHD转不成功,代码是我六年前写的EPP接口500K的采集
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity controler is
port(clock:in std_logic;
reset:in std_logic;
inclk:buffer std_logic;
--OE:buffer std_logic;--------------
--SEL:buffer std_logic;-------------
ndata:in std_logic;
din:in std_logic_vector(7 downto 0);
outclk:buffer std_logic;
dout:out std_logic_vector(7 downto 0);
ramwr:buffer std_logic;
waitout:buffer std_logic;
addressbus:out std_logic_vector(12 downto 0);
ramoe:buffer std_logic);
end;
architecture work of controler is
signal count:std_logic_vector(4 downto 0);
signal sel: std_logic;
signal oe: std_logic;
signal wpointer:std_logic_vector(12 downto 0);
signal rpointer:std_logic_vector(12 downto 0);
signal ready:std_logic;
signal eppcount:std_logic_vector(1 downto 0);
begin
readdata:process(reset,clock,OUTCLK,RAMOE)
begin
if reset='1' then
count<="11101";
oe<='1';
--SEL<='0';
ramwr<='1';
ramoe<='1';
inclk<='0';
--sel<='1';
else
if rising_edge(clock) then
if count="11101" then
count<="00000";
inclk<='1';
RAMOE<='1';
oe<='0';
--sel<='1';
else
count<=count+1;
end if;
if count="11100" then
oe<='0';
RAMOE<='1';
end if;
if count="00000" then
ramwr<='0';
end if;
if count="00001" then
ramwr<='1';
oe<='1';
inclk<='0';
RAMOE<='0';
end if;
IF COUNT>"00001" THEN
IF RPOINTER=WPOINTER THEN
OE<='0';
--SEL<='1';
RAMOE<='1';
ELSE
--IF COUNT/="11100" THEN
--RAMOE<='0';????????????????????????????(要修)
--END IF;
END IF;
END IF;
end if;
end if;
end process readdata;
outctrl:process(INCLK,din)
begin
--IF OE='0' THEN
--if sel='0' AND INCLK='0' then
-- dout<="00000000";
--elsE
-- IF INCLK/='1' THEN
-- dout<=din;
-- END IF;
--END IF;
--ELSIF OE='1' THEN
--dout<="ZZZZZZZZ";
--end if;
if inclk='1' then
if din="00000000" then
dout<="00000001";
else
dout<=din;
end if;
else
if ramoe='1' then
dout<="00000000";
else
dout<="ZZZZZZZZ";
end if;
end if;
--if inclk='0' then
--if ramoe='0' then
-- dout<="ZZZZZZZZ";
--else
-- dout<="00000000";
--end if;
--end if;
end process outctrl;
waddress:process(ramwr,reset)
begin
if reset='1' then
wpointer<="0000000000000";
else
if rising_edge(ramwr) then
wpointer<=wpointer+1;
end if;
end if;
end process waddress;
raddress:process(reset,outclk,ramoe)
begin
if reset='1' then
rpointer<="0000000000000";
else
if FALLING_edge(OUTCLK) then
if ramoe='0' then
rpointer<=rpointer+1;
end if;
end if;
end if;
end process raddress;
addresscom:process(wpointer,rpointer)
begin
if wpointer=rpointer then
SEL<='0';
else
SEL<='1';
end if;
end process addresscom;
addressout:process(wpointer,rpointer,inclk)
begin
if inclk='1' then
addressbus<=wpointer;
else
addressbus<=rpointer;
end if;
end process addressout;
eppread:process(clock,ndata,inclk,eppcount)
begin
if inclk='0' then
if ndata='0' then
if rising_edge(clock) then
if ready='1' then
if eppcount="00" then
IF (COUNT>"00001" and count<"11100") THEN
outclk<='1';
eppcount<=eppcount+1;
END IF;
end if;
if eppcount="01" then
outclk<='0';
waitout<='1';
eppcount<=eppcount+1;
end if;
else
ready<='1';
eppcount<="00";
end if;
end if;
else
if ndata='1' then
--if rising_edge(clock) then
waitout<='0';
ready<='0';
--end if;
end if;
end if;
end if;
end process eppread;
end work; mark!!!!! 正是我想要的 mark 顶上去。 mark 强悍! 回复【楼主位】tear086 .COM 缺氧
-----------------------------------------------------------------------
转出来不能复制啊? 很神奇,用vhdl转Verilog提示错误,
解决办法是把VHDL文件先用Verilog-》VHDL一下,把输出的文件再VHDL-》Verilog就可以了。 强悍!!! 回复【41楼】888888888888
-----------------------------------------------------------------------
可以啊
//////////////////////////////////////////////////////////////////////////////////////////////
//
// Verilog file generated by X-HDL - Revision 3.2.52Mar. 28, 2005
// Thu Apr 15 22:58:43 2010
//
// Input file : C:/Documents and Settings/Administrator/Desktop/qq.vhd
// Design name : controler
// Author :
// Company :
//
// Description :
//
//
//////////////////////////////////////////////////////////////////////////////////////////////
//
module controler (clock, reset, inclk, ndata, din, outclk, dout, ramwr, waitout, addressbus, ramoe);
input clock;
input reset;
output inclk;
reg inclk;
input ndata;
input din;
output outclk;
reg outclk;
output dout;
reg dout;
output ramwr;
reg ramwr;
output waitout;
reg waitout;
output addressbus;
reg addressbus;
output ramoe;
reg ramoe;
reg count;
reg sel;
reg oe;
reg wpointer;
reg rpointer;
reg ready;
reg eppcount;
always @(posedge reset or posedge clock)
begin : readdata
if (reset == 1'b1)
begin
count <= 5'b11101 ;
oe <= 1'b1 ;
ramwr <= 1'b1 ;
ramoe <= 1'b1 ;
inclk <= 1'b0 ;
end
else
begin
if (count == 5'b11101)
begin
count <= 5'b00000 ;
inclk <= 1'b1 ;
ramoe <= 1'b1 ;
oe <= 1'b0 ;
end
else
begin
count <= count + 1 ;
end
if (count == 5'b11100)
begin
oe <= 1'b0 ;
ramoe <= 1'b1 ;
end
if (count == 5'b00000)
begin
ramwr <= 1'b0 ;
end
if (count == 5'b00001)
begin
ramwr <= 1'b1 ;
oe <= 1'b1 ;
inclk <= 1'b0 ;
ramoe <= 1'b0 ;
end
if (count > 5'b00001)
begin
if (rpointer == wpointer)
begin
oe <= 1'b0 ;
ramoe <= 1'b1 ;
end
else
begin
end
end
end
end
always @(inclk or din)
begin : outctrl
if (inclk == 1'b1)
begin
if (din == 8'b00000000)
begin
dout <= 8'b00000001 ;
end
else
begin
dout <= din ;
end
end
else
begin
if (ramoe == 1'b1)
begin
dout <= 8'b00000000 ;
end
else
begin
dout <= 8'bZZZZZZZZ ;
end
end
end
always @(posedge ramwr or posedge reset)
begin : waddress
if (reset == 1'b1)
begin
wpointer <= 13'b0000000000000 ;
end
else
begin
wpointer <= wpointer + 1 ;
end
end
always @(posedge reset or negedge outclk or negedge ramoe)
begin : raddress
if (reset == 1'b1)
begin
rpointer <= 13'b0000000000000 ;
end
else
begin
if (ramoe == 1'b0)
begin
rpointer <= rpointer + 1 ;
end
end
end
always @(wpointer or rpointer)
begin : addresscom
if (wpointer == rpointer)
begin
sel <= 1'b0 ;
end
else
begin
sel <= 1'b1 ;
end
end
always @(wpointer or rpointer or inclk)
begin : addressout
if (inclk == 1'b1)
begin
addressbus <= wpointer ;
end
else
begin
addressbus <= rpointer ;
end
end
always @(clock or ndata or inclk or eppcount)
begin : eppread
if (inclk == 1'b0)
begin
if (ndata == 1'b0)
begin
if (ready == 1'b1)
begin
if (eppcount == 2'b00)
begin
if (count > 5'b00001 & count < 5'b11100)
begin
outclk <= 1'b1 ;
eppcount <= eppcount + 1 ;
end
end
if (eppcount == 2'b01)
begin
outclk <= 1'b0 ;
waitout <= 1'b1 ;
eppcount <= eppcount + 1 ;
end
end
else
begin
ready <= 1'b1 ;
eppcount <= 2'b00 ;
end
end
else
begin
if (ndata == 1'b1)
begin
waitout <= 1'b0 ;
ready <= 1'b0 ;
end
end
end
end
endmodule mark 这东西好啊····以后看东西不用愁了··· mark 顶,顶,顶,顶 MARK 马克 谢谢分享,先MARK 回复【楼主位】tear086 .COM 缺氧
-----------------------------------------------------------------------
ddd 试试~~~ 回复【楼主位】tear086 .COM 缺氧
如题。
不用不知道,一用吓一跳。
点击此处下载(原文件名:x-hdl3.2.52.zip)
(原文件名:抓图-1.png)
引用图片
-----------------------------------------------------------------------
不用不知道,一用吓一跳。 强力mark Mark! mark 我那个license不能用啊,没办法转换成文件,看的好辛苦,求助,license怎么注册啊,看我有没有注册错,求助楼主! 关注。。。 标记 拿来试试看…… version up 再放猛料
Verilog和VHDL互相转换工具(XHDL-4.0.36破解)
http://www.61eda.com/Soft/soft/zongh/201005/4974.html mark 是必须的。 张亚峰弟弟 这个有什么用啊真是的!! 支持 转出来的能直接用? mark mark 后果很严重,工程师们很生气。 那么多选项,约束越多,越靠谱;慢慢看,好好用。 正在学习中 mark mark 现在不懂。mark以后可能用到。。。 mark mark 回复【楼主位】tear086 .COM 缺氧
-----------------------------------------------------------------------
不错 不错 谢谢楼主 很好,一直都想找 但没找到谢了 严重mark 不错,支持 请问转换结果出来后不能复制或者保存文件怎么办?如下图:
http://cache.amobbs.com/bbs_upload782111/files_31/ourdev_571071.JPG
(原文件名:结果.JPG) 回复【90楼】wcabcd
-----------------------------------------------------------------------
./bbs_upload/files_31/ourdev_571084.jpg
配置上面的选项。 Mark mark 不错,先收下了,改天试试。 顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶 mark mark MARK 玩玩可以,真正实用恐怕还是跟不上吧。 回复【54楼】barrie_xie
mark
-----------------------------------------------------------------------
日,还以为屏幕上落了个虫子,严重警告一次!! mark 就 出错了,不知道是不是我没设置好